如果用户在页面名称之后输入尾随“/”(或“/”之后的任何内容),我如何将用户重定向到错误 404 页面?

Posted

技术标签:

【中文标题】如果用户在页面名称之后输入尾随“/”(或“/”之后的任何内容),我如何将用户重定向到错误 404 页面?【英文标题】:How do I redirect users to an error 404 page if they enter a trailing "/" (or anything after a "/"), after the page name? 【发布时间】:2014-11-17 18:59:41 【问题描述】:

在 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 指令解决吗?

【问题讨论】:

我猜你已经为此设置了某种过滤器。是 php,.htaccess.. 吗?另外,将其包含在您的问题描述中,以便我们检查;) 【参考方案1】:

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

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

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

【讨论】:

绝对是@arco444,我打错了。谢谢! 看起来这只适用于 .php 页面,不包括 .html、.htm。我对吗?如何修改它以包括后者。

以上是关于如果用户在页面名称之后输入尾随“/”(或“/”之后的任何内容),我如何将用户重定向到错误 404 页面?的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 在fgets之后删除尾随的新行

第 1 页之后的页面上未显示 VBA 报告标题(列名称)

vue如何在组件挂载完成之后在监听data中对象或属性的变化

进入form.html页面后输入用户名密码之后提交进入下一页面找不到出现404

使用 0 值指数或尾随 0 使科学计数法无效

网络I/O模型