Dot-Htaccess

將子文件夾的問題重定向到共享主機上的子域

  • December 19, 2009

情況如下:我有幾個不同的 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]

此外,您可以放鬆逃逸。它沒有傷害,但它也無濟於事,而且它使閱讀變得更加困難。

引用自:https://serverfault.com/questions/84514