我想設置一個子文件夾的根文件夾,拿什麼通過追加他們的根之前的目錄重寫每個請求的URL,像如何在.htaccess中設置一個子目錄作爲根目錄?
example.com/cat/ -> example.com/public/cat/
example.com/cat/black/ -> example.com/public/cat/black/
example.com/public/cat/ -> example.com/public/public/cat/
我已經試過
Options +FollowSymlinks
RewriteEngine on
RewriteBase/
RewriteRule (.*) /public/$1 [L]
但是,當我要求的任何它的頁面,我得到了內部服務器錯誤。
這很奇怪。我認爲,如果我不重定向,它只是從重寫的路徑發送文件,而不是重新啓動整個事情。檢查重定向狀態有點怪異,所以我會和第二個一起去。沒有標誌或什麼東西只是重寫響應的路徑?或者,也許在沒有破壞結構語義的情況下使用PHP的幫助? – Tomato
您可以看到Apache的[規則集處理](https://httpd.apache.org/docs/current/rewrite/tech.html#InternalRuleset)的圖像,它顯示了在「URI已更改」時,循環再次開始。 'RewriteRule'是重寫請求的指令。您也可以使用PHP,並通過查看['__ SERVER ['REQUEST_URI'']](http://php.net/manual/en/reserved.variables.server.php)並提供適當的內容來執行相同的操作。 –
我還沒有試過['END'](https://httpd.apache.org/docs/current/rewrite/flags.html#flag_end)標誌,但也許這適用於您的目的。 –