我有我最初認爲是一個簡單的問題。我爲我的網站使用共享主機(因此我無法訪問Apache配置),並且只有一個文件夾來存儲我的所有內容。這一切都很好,但這意味着我的所有子域必須他們的虛擬文檔根在public_html
之內,這意味着它們實際上成爲我主域上的文件夾。Apache mod_rewrite - 將域根目錄轉移到子目錄
我希望做的是組織我public_html
是這樣的:
public_html/ www/ index.php ... sub1/ index.php ... some_library/ ...
這樣一來,我的所有網頁內容仍處於public_html
但只有一小部分會提供給客戶端。我可以輕鬆地爲所有子域實現此目標,但這是我遇到的主要問題。
我創建了一個.htaccess
文件public_html
下列要求:
Options +SymLinksIfOwnerMatch # I'm not allowed to use FollowSymLinks RewriteEngine on RewriteBase/ RewriteCond %{REQUEST_URI} !^/www [NC] RewriteRule ^(.*)$ /www/$1 [L]
這工作還算不錯,但出於某種奇怪的原因www.example.com/stuff
被翻譯成請求爲www.example.com/www/stuff
,因此被賦予一個404錯誤。我的理解是,除非指定了'R'標誌,否則mod_rewrite純粹是內部的,所以我不明白爲什麼請求會生成,因爲這意味着(至少對我而言)重定向。
我認爲這將是一個微不足道的問題來解決,因爲我實際上想要做的是將所有www.example.com
的根請求轉發到子目錄,但我花了數小時尋找答案,沒有一個是非常正確的。我很難相信我是唯一有此問題的人。
我很抱歉如果這個問題已經在這裏回答過,我沒有搜索和拖網,但找不到合適的答案。請有人可以解釋一下嗎?