【发布时间】:2019-03-12 19:44:07
【问题描述】:
这是我最初的问题。 有些人正在做指向我网站的链接,但网址不正确,通常在网址后添加奇怪的字符。
所以,例如,而不是链接到: www.example.com/hello.php 他们链接到: www.example.com/hello.php+fiat 然后发生 404 错误。
我确实创建了一个像这样的重写规则,它就像一个魅力:
RewriteRule ^([a-z0-9\-/_]*\.php).* $1 [L]
我用相同的行为尝试了这 2 个(工作正常)
RewriteRule ^(.*\.php).* $1
RewriteRule ^(.*\.php).*$ $1
.php 之后的所有内容都被删除,然后指向正确的 url。 问号在重写中不是问题,这意味着我有很多带有 xyz.php?id= 的页面,我想保持它们原样。
但是现在,由于一个模糊的原因, 当我输入一个不存在的网址时: example.com/toto/index.php 我有一个 500 内部服务器错误,而不是通常的 404 页面。 但是如果我删除我的规则,那么我会像往常一样再次访问 404 页面。
如果它可以提供帮助,那么导致 Apache 崩溃的唯一规则就是:
RewriteRule ^(.*\.php).* $1 [R=301,L]
有什么想法吗? (在 Apache 2.2 上)
谢谢
【问题讨论】:
标签: apache mod-rewrite