2

我昨天在这里问了一个问题,用户“faa”试图帮助我,但不幸的是我们无法解决这个问题。

原始问题在这里:Rewriting url with htaccess when a directory exists

我正在做一个简单的重写,但由于目录访问权限,它(显然)不起作用。

编码:

*动态页面:url.com/index.php?page=download

重写规则:^download$ /index.php?page=download

问题:

存在一个名为“下载”的目录。当重写规则尝试将动态页面* 重写为路径“下载”时,它会返回 403 FORBBIDEN 错误,并且页面被重写为“下载/?页面=下载”。

现在,如果我将该目录重命名为其他名称,例如“下载”,那么它可以工作。

- 编辑 -

默认情况下,我的服务器使用“403 禁止错误”保护每个目录。我相信这是它不起作用的原因,但我不确定。真的是冲突吗?怎么了?

4

2 回答 2

2

/download/?page=下载

发生这种情况的原因是因为 mod_dir 在某处重定向了对缺少尾部斜杠的目录的所有请求以包含尾部斜杠。这干扰了您的重写规则。由于您的服务器已自动设置为拒绝列出目录,因此继续关闭目录斜杠可能是安全的:

DirectorySlash Off
于 2013-05-03T00:41:55.203 回答
0

尝试

RewriteRule ^download[/]?$ index.php?page=download

即使路径提供了 /,该规则也匹配,因此无法访问目录下载。

确保即使在重定向之后 RewriteRule 也会执行。

于 2013-05-02T20:27:50.967 回答