Apache mod_重写相对路径不工作。需要重新编写基础
我在目录中使用一个简单的.htaccess文件将该目录中的所有请求重定向到同一目录中的脚本,但相对路径不起作用,我必须使用Apache mod_重写相对路径不工作。需要重新编写基础,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我在目录中使用一个简单的.htaccess文件将该目录中的所有请求重定向到同一目录中的脚本,但相对路径不起作用,我必须使用RewriteBase,否则它将不起作用 这是我的设置 目录布局: / (web root) |- index.html |- hooks |- .htaccess |- server.py 当我请求http://example.com/hooks/foo我希望它可以重写为http://example.com/hooks/server.py/foo 这是我的.h
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:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ server.py/$1 [L,QSA]
因此,我们将请求链接
我想这就是你出现404错误的原因
这个规则怎么样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^hooks/(.*)$ server.py/$1 [L,QSA]
如果删除“重写基”:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ server.py/$1 [L,QSA]
因此,我们将请求链接
我想这就是你出现404错误的原因
这个规则怎么样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^hooks/(.*)$ server.py/$1 [L,QSA]
当您删除
RewriteBase
时,它将重写到的URL将是:http://example.com/hooks/foo/server.py/foo
当RewriteBase
被注释掉时,http://example.com/hooks/foo
?@hjpotter92哦,这很有道理!但为什么呢?如果foo不是有效的directory@anubhava是的,它是404's404的确切错误消息是什么?当您删除RewriteBase
时,它将重写到的URL将是:http://example.com/hooks/foo/server.py/foo
当注释掉RewriteBase
时,http://example.com/hooks/foo
?@hjpotter92哦,这很有道理!但为什么呢?如果foo不是有效的directory@anubhava是的,它是404的。404的错误消息是什么?这只是写同样东西的另一种方式。我正在尝试删除指定当前目录的需要。这只是编写相同内容的另一种方式。我正在尝试删除指定当前目录的需要。