Dot-Htaccess
將子文件夾的問題重定向到共享主機上的子域
情況如下:我有幾個不同的 Web 項目在單個共享主機上執行。項目“A”通過子域(subA.mydomain.com)訪問,而項目“B”是主mydomain.com
A 和 B 都是主機的 public_html 文件夾中的符號連結:
ln -s /home/myhost/ProjectA ~/public_html/subA ln -s /home/myhost/ProjectB ~/public_html/main
子域(項目 A)工作正常,站點正在其上執行。對於主域**“B”**,我使用 .htaccess 將主域指向此處所寫的子文件夾。域網站也執行良好。
問題是當我執行mydomain.com/subA時,子域網站(項目 A)打開。我嘗試添加重定向規則以指向mydomain.com/subA –> subA.mydomain.com,如下所示:
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR] RewriteCond %{HTTP_HOST} ^www.mydomain.com$ RewriteRule ^subA\/?$ "http\:\/\/subA\.mydomain\.com\/" [R=301,L]
但是 url 仍然讀取mydomain.com/subA並且顯示的網站是項目 A(圖像和靜態文件明顯失去,因為它是一個不同的 Web 項目)。
為什麼重定向不起作用?
似乎以下行有效(並刪除了早期的正則表達式重重定向程式碼):
RedirectMatch 301 /subA/ http://subA.mydomain.com/
謝謝大家!
除非你有一個
RewriteBase /
地方,否則^subA\/?$
不會匹配任何東西。Mod_rewrite 查看整個 url,包括前導 /。嘗試:RewriteRule ^/subA/?$ http://subA.mydomain.com/ [R=301,L]
此外,您可以放鬆逃逸。它沒有傷害,但它也無濟於事,而且它使閱讀變得更加困難。