如果用户输入尾随的“错误”,我如何将他们重定向到错误404页面/";(或“/”之后的任何东西)、页面名称之后


How do I redirect users to an error 404 page if they enter a trailing "/" (or anything after a "/"), after the page name?

在Apache/Linux服务器上,如果用户在页面名称后输入尾随的"/"(或"/"后的任何内容),我如何将用户重定向到错误404页面?

例如,这个URL应该指向一个错误页面:

http://www.example.com/contactus.php/someextrastuffhere

然而,这个URL不应该:

http://www.example.com/contactus.php?name=john+smith&email=johnsmith@webpage.com

然而,后一个URL破坏了我的网站。

这可以用一个简单的.htaccess指令来解决吗?

您可以将此规则作为根目录中的第一条规则。htaccess:

RewriteRule ^.+?'.(php|html?)/ - [L,R=404,NC]

这将向404发送任何/file.php/foo请求,而http://www.example.com/contactus.php?name=john+smith&email=johnsmith@webpage.com不会受到影响。