考慮一個目錄,該目錄是由Apache網絡服務器的URL sample.com
下服務的結構如下:阿帕奇重寫規則指向密碼保護的目錄
/local/path/index.html
/local/path/.htaccess
/local/path/admin
/local/path/admin/.htaccess
/local/path/admin/projects/project1/index.html
/local/path/admin/projects/project2/index.html
/local/path/admin/projects/project3/index.html
而/local/path/projects
是指向其他目錄符號鏈接。 這樣的/local/path/.htaccess
內容基本上是這樣的規則:
Options SymLinksIfOwnerMatch
其他的.htaccess確保admin目錄受密碼保護。
當要求http://sample.com
時index.html
送達。 當例如請求http://sample.com/admin/projects/project1
,在用戶輸入正確的密碼後提供/local/path/admin/projects/project1/index.html
的內容。 請求http://sample.com/admin
當然會導致404錯誤。
我的意圖是讓地址http://sample.com/admin
服務/local/path/admin/projects/project1/index.html
。但是這不應該是重定向,也就是說,例如在瀏覽器的url-bar中,url仍然是選擇的。但如果有必要,重定向到http://sample.com/admin/
就沒關係。
我試圖提升/local/path/admin/.htaccess
文件有以下:
RewriteEngine On
RewriteRule ^admin admin/projects/project1
RewriteRule ^admin/(.*) admin/projects/project1/$1
但規則似乎沒有任何效果。這可能是因爲它指向了密碼保護區域嗎?
在另一方面,這是不可能創造admin/.htaccess
像這裏面的規則:
RewriteRule ^(.*)$ projects/project1/$1
什麼我做錯了嗎?
這工作得很好。但是,如果project1包含一些html所需的文件,該怎麼辦?我嘗試過:'RewriteRule^/(。*)$/admin/projects/project1/$ 1 [L]'但這不行。 –
我完全不理解您的評論,但您可以在'admin/.htaccess'中嘗試更新的規則: – anubhava