我在目录中使用一个简单的.htaccess文件将该目录中的所有请求重定向到同一目录中的脚本,但相对路径不起作用,我必须使用{{1}或者它不起作用。
这是我的设置,
目录布局:
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]
行,则不会。
是什么给出的?它不应该默认为相对路径吗?我的主机上是否存在配置问题?有没有办法调试这个?
答案 0 :(得分:1)
如果删除RewriteBase:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ server.py/$1 [L,QSA]
因此http://example.com/hooks/foo会请求该链接 http://example.com/hooks/server.py/hooks/foo
我认为这就是你得到404错误的原因。
这条规则怎么样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^hooks/(.*)$ server.py/$1 [L,QSA]