【发布时间】:2016-04-11 10:01:57
【问题描述】:
我在一个目录中使用一个简单的 .htaccess 文件将该目录中的所有请求重定向到同一目录中的一个脚本,但是相对路径不起作用,我必须使用 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时,它将重写的 URL 将是:http://example.com/hooks/foo/server.py/foo -
当
RewriteBase被注释掉时,http://example.com/hooks/foo得到 404 吗? -
@hjpotter92 哦,有道理!但这是为什么呢?如果 foo 不是有效目录
-
@anubhava 是的,它是 404 的
-
确切的 404 错误信息是什么?
标签: apache .htaccess mod-rewrite