如何通过htaccess在第二个404 error
之后为所有带有额外字符的网址返回/
。
e.g1:
http://www.example.com/blah-blah/
NOT重定向(第2 /
后没有额外字符)
e.g2:
http://www.example.com/blah-blah/blah-blah
重定向到404
e.g3:
http://www.example.com/blah-blah/blah-blah/
重定向到404
e.g4:
http://www.example.com/blah-blah/blah-blah/blah-blah
重定向到404
e.g5:
http://www.example.com/blah-blah/blah-blah/blah-blah/
重定向到404
我试过这个,但不适用于eg3&例如5(以斜杠结尾的URL):
ErrorDocument 404 /404
RewriteBase /
RewriteRule ^[^/]+/.+ - [R=404,L]
答案 0 :(得分:0)
只有在第二次斜杠后有一些字符时才重定向请求,你需要这个重写规则
ErrorDocument 404 /404
RewriteBase /
RewriteRule .*/.+ - [R=404,L]
PS:当你在regexp之后使用短划线时,它表示将匹配传递给文件系统。
编辑:这个模式/.*/.+与下一个例子匹配,但是我忘记了RewriteBase指令,所以你需要删除模式中的第一个斜杠(我之前编辑RewriteRule)
PS:您可以使用此工具来检查您的重写是否有效rewrite-rule-tester