[英].htaccess Redirect Root to Subdomain
我正在嘗試使用當前的共享主機配置來解決一些煩惱,但是我在設置所需的設置時遇到了一些問題。
當前,我具有以下文件夾結構:
/
/.htaccess
/example
/example1
/example2
/example3
在共享主機上,主域自動設置為指向根目錄。 為了將主域指向子域,我在根文件的.htaccess中添加了以下內容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteCond %{REQUEST_URI} !^/example/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /example/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ example/ [L]
這樣可以正確地重寫URL,以便轉到example.com可以顯示/ example /子目錄中的內容。 問題在於根目錄的子目錄不會以相同的方式重寫,這不是我希望實現的功能。 例:
http://www.example.com/ = /example
http://www.example.com/example/ = /example
http://www.example.com/example1/ = /example1
http://www.example.com/example2/ = /example2
http://www.example.com/example3/ = /example3
我想發生的事情如下:
http://www.example.com/ = /example
http://www.example.com/example/ = /example/example
http://www.example.com/example1/ = /example/example1
http://www.example.com/example2/ = /example/example2
http://www.example.com/example3/ = /example/example3
我對應該發生的情況的理解如下:
這看起來確實可行,但是如果我嘗試訪問http://www.example.com/example2/ ,就會遇到問題。 由於REQUEST_URI與/ example /不匹配,我以為應該將其重寫為/ example / example2,但是顯然不會發生。
我沒有訪問Apache配置的權限,也沒有設置VirtualHosts的能力,所以我希望可以使用.htaccess規則進行某些操作。 對我如何使此簡單任務過於復雜的任何見解都將非常有幫助。
據我所知,如果根目錄中的目錄與傳入的請求匹配(即,如果example1存在於根目錄中,則將RewriteCond重寫為/ example1到),則將忽略根目錄中的.htaccess文件。錯誤頁面從未被觸發)。
我對此的解決方案最終沒有我期望的那么優雅,但似乎可行。 希望它可以幫助偶然發現此問題的其他任何人。
在example1,example2和example3目錄中,我修改了.htaccess文件以包括以下內容(根據目錄更改example1):
RewriteCond %{HTTP_HOST} ^(www\.)example\.com$ [NC]
RewriteRule ^(.*)$ /example/example1/$1 [L]
這將強制主域提供我為其創建的子目錄中的內容,即使根目錄中存在匹配的目錄也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.