【问题标题】:How to remove a trailing slash from phpBB url?如何从 phpBB url 中删除尾部斜杠?
【发布时间】:2012-06-11 23:27:24
【问题描述】:

我已经关注了一些之前回答过的问题,并将我的 phpBB 论坛的主 URL 改写如下:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ /%1 [R=301,L]

以前的论坛网址是

http://site.com/forum/index.php

现在它成功解析为

http://site.com/forum/

我想删除最后的斜杠。我应该对上面的代码进行哪些更改?

附:我需要对同一站点的 wiki 页面进行类似的更改,该页面当前解析为 site.com/wiki/index.php?title=Main_Page(我需要它是 site.com/wiki)

【问题讨论】:

    标签: .htaccess url url-rewriting mediawiki phpbb


    【解决方案1】:

    添加

    RewriteRule ^(.*)/{1}$ $1 [L,R=301]
    

    【讨论】:

      【解决方案2】:

      在重写规则之前的 .htaccess 中添加以下行:

      DirectorySlash Off
      

      告诉 Apache 不要总是附加斜杠。

      【讨论】:

      • 添加该行后,转到 URL 会向访问者显示我的目录和文件列表,而不是加载 index.php
      • 您的规则中有此条件RewriteCond %{REQUEST_FILENAME} !-d,这就是它不会转发到index.php 的原因。注释掉这一行,然后转发。
      • 实际上,当我只有 DirectorySlash Off 而没有任何 ReWriteEngine 代码时,也会发生这种情况。
      • 您是否尝试删除RewriteCond %{REQUEST_FILENAME} !-d 进行测试。
      • 是的,我删除了那行。当您输入不带斜杠的 URL 时,它仍然会公开目录列表。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      相关资源
      最近更新 更多