繁体   English   中英

重定向无法正常工作

[英]Redirects not working as expected

我有几行的.htaccess文件。 它不能按预期方式工作。 Mod_rewrite已启用。 RewriteLogLevel设置为9。前两个规则禁止长度超过80个字符的uri:

RewriteCond %{REQUEST_URI} ^.{80}
RewriteRule .* - [F]

似乎在每个测试网址通过时都不会得到评估,它也不会产生错误。 我也尝试过:

RewriteRule .{80} - [F]

但这也没有成功。 该过程以404(而不是403)结束。

下一条规则也不起作用。 它曾经工作。

RewriteRule ^(\/)?([\w]+)$ /index.php [L]

URI / Contact始终由此index.php处理。 我键入的任何URL都会得到404。我应该得到403或200。而不是404。我缺少什么? Apache在所有目录上均具有读取,写入和执行的权限,而在所有文件上均具有读取和写入的权限。

用于测试的两个网址为:127.0.0.4/assssssssssssssssssssssssssssssssssssssssssssssssssssssssddddddddddddddddddddddddddddddpdssssssssdddddddddddddddddddddddd?p=s&s=psv

127.0.0.4/联系

使用的127.0.0.4的别名是thinkate.lb。

请尝试以下规则:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+\S{80}
RewriteRule ^ - [F]

使用THE_REQUEST而不是REQUEST_URI ,因为由于.htaccess中存在其他规则,该变量可能会被覆盖

终于我找到了解决方案。 问题不在于.htaccess的编码中。 我用以前的版本替换了文件,添加了新行以测试请求,一切正常。

这不是令人满意的解决方案,因为它可能再次发生,并且我不知道导致错误的原因。 如果有人知道错误,我很想听听可能是确切原因以及如何正确解决问题。 我想更改问题的标签,因为当前标签可能会引起误解(尽管其他人可能会遇到同样的问题,即apache如何处理.htaccess文件),但是我不知道应该使用哪个标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM