我在一個目錄中使用一個簡單的.htaccess文件將所有請求從該目錄重定向到同一目錄內的腳本,但相對路徑不工作,我必須使用RewriteBase
否則它將無法工作。mod_rewrite相對路徑不起作用。需要RewriteBase
這裏是我的設置,
目錄佈局:
/ (web root)
|- index.html
|- hooks
|- .htaccess
|- server.py
當我做出http://example.com/hooks/foo
請求我希望它改寫爲http://example.com/hooks/server.py/foo
因此,這裏是我的.htaccess
:
RewriteEngine On
RewriteBase /hooks/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ server.py/$1 [L,QSA]
上述工作很好。但如果我刪除RewriteBase /hooks/
行,它不會。
什麼給?它不應該默認爲相對路徑嗎?我的主機上有配置問題嗎?有什麼方法可以調試嗎?
當您刪除'RewriteBase',它會重寫的網址是:'http://example.com/hooks/foo/server.py/foo ' – hjpotter92
當'RewriteBase'被註釋掉時,你是否得到404用於'http:// example.com/hooks/foo'? – anubhava
@ hjpotter92哦,這是有道理的! 但是爲什麼呢?如果foo不是一個有效的目錄 – Skinner927