【问题标题】:Wordpress - trailing slash removalWordpress - 删除斜杠
【发布时间】:2017-03-07 05:36:54
【问题描述】:

我无法从主页链接example.com/blog/ 中删除尾部斜杠。 我从.htaccess 以及站点配置中尝试过。

RewriteRule (.+)/$ $1 [R=301,L]

它是通过永久链接工作的,所有类别和帖子都没有尾部斜杠。 但是主页仍然有它,真的很烦人,对我的 SEO 不利。

** blog 是一个子目录

还需要像下面这样定义 htaccess:

Options -Indexes
DirectorySlash Off

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ./index.php [L]
RewriteRule ^blog$ /blog/index.php [L]
</IfModule>

我该如何解决?

【问题讨论】:

    标签: wordpress .htaccess url


    【解决方案1】:

    尝试在 .htaccess 中设置以下内容:

    DirectorySlash Off
    

    因为/blog 是(我假设)一个物理目录,所以 mod_dir 通常会附加尾部斜杠以“修复”URL。

    但是,现在 没有尾部斜线是否可以工作是另一回事,因为您现在需要在内部重写请求以包含尾部斜线。 p>

    更新:要在访问 /blog 时删除“文件列表”,您应该将以下指令添加到您的 .htaccess 文件的顶部(无论如何,这是一个好主意,无论当前问题):

    Options -Indexes
    

    要在没有尾部斜杠的情况下使这个“工作”,您需要手动在内部重写请求以包含尾部斜杠(因为这是严格的“正确”URL,因为这是一个物理目录),或者更进一步(并避免 mod_dir 请求 DirectoryIndex)并重写为 /blog/index.php - 我认为这是所需的文件名,是 WordPress。

    在文档根目录的 .htaccess 文件中,在任何现有的 mod_rewrite 指令之前添加以下内容:

    RewriteRule ^blog$ /blog/index.php [L]
    

    【讨论】:

    • 是的,这是一个物理目录,-您的解决方案对我不起作用,它向我显示文件列表:/blog 的索引和仅使用斜杠的站点还有其他想法吗?非常感谢
    • 想必WordPress安装在/blog子目录下?我已经更新了我的答案。
    • 我试过了 - 不工作 - 请看我的帖子我用 htaccess 文件编辑了它
    • 我收到“禁止访问:您无权访问此服务器上的 /blog。”而且权限没问题
    • @MladenJanjetovic 如果您禁用了目录索引并且该目录中没有目录索引文档(这不是文件权限问题),您将收到 403 Forbidden。但是,如上所述,如果您正在主动删除物理目录上的尾部斜杠,那么您需要在内部重写请求以“修复”URL(通过附加尾部斜杠),否则,服务器行为未定义。
    【解决方案2】:

    尝试转到设置 -> 常规 -> WordPress 地址 (URL) 并删除尾部斜杠。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多