【问题标题】:Codeigniter not showing 404Codeigniter 未显示 404
【发布时间】:2021-10-24 16:31:47
【问题描述】:

当有人在 URL 末尾写斜杠时,我想显示 404 页面

  • http://www.example.com/abc(正确的网址)

  • http://www.example.com/abc/(我想显示 404 错误)

【问题讨论】:

  • 请解释为什么您认为尾部反斜杠符合 404 条件?
  • 因为谷歌认为这是一个重复的链接,所以它被添加到了黑名单中

标签: .htaccess codeigniter mod-rewrite


【解决方案1】:

如果您的 URL 都没有以斜杠结尾,并且您不需要直接访问任何文件系统目录,那么您可以在 .htaccess 文件的 top 中添加以下内容,现有的 Codeigniter 指令之前,改为提供 404:

# Trigger 404 for any URL that ends in a slash
RewriteRule /$ - [R=404]

或者,您可以删除尾部斜杠。 IE。将任何以斜杠结尾的 URL(不是文件系统目录)重定向到 URL 的非斜杠版本。例如:

# Remove trailing slash (except for directories)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)/$ /$1 [R=301,L]

以上将/abc/重定向到/abc,从而避免重复内容问题。

注意:首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。

您需要排除目录,否则 mod_dir 将尝试重新附加尾部斜杠,您将获得重定向循环。


除此之外:您需要确保始终链接到正确的规范 URL,即。没有尾随斜杠。如果 Google 将带有斜杠的 URL 编入索引,则表明它在某处找到了这些 URL。

【讨论】:

    猜你喜欢
    • 2016-10-25
    • 2012-07-12
    • 2014-05-25
    • 1970-01-01
    • 2014-10-31
    • 2012-07-17
    • 2017-07-02
    • 1970-01-01
    • 2015-08-14
    相关资源
    最近更新 更多