【问题标题】:.htaccess 301 redirect adds an extra slash.htaccess 301 重定向添加了一个额外的斜杠
【发布时间】:2015-06-24 16:47:47
【问题描述】:

在曾经从 .asp 迁移到 .php 的网站上,我在 .htaccess 文件中使用了以下内容,以确保关注旧链接的用户最终会出现在正确的页面上:

RewriteEngine On
RedirectMatch 301 (.*)\.asp$ http://www.website.org/$1.php

我刚刚将站点移到了一个新服务器上,现在对 .asp 页面的请求在地址中以一个额外的斜线结尾,紧接在页面名称之前:

http://www.website.org//page.php

(如何)可以调整上述 .htaccess 代码以消除多余的斜线?

【问题讨论】:

  • 我已经更新了我的答案,它应该可以满足您的需求。

标签: php .htaccess mod-rewrite redirect


【解决方案1】:

您假设RedirectMatch 需要RewriteEngine On,但事实并非如此。 RedirectMatchmod_alias 的指令,另一个来自mod_rewrite

您可以使用这两个代码中的任何一个来修复您的代码:

选项 1:

RewriteEngine On
RewriteRule ^(.+?)\.asp$ http://www.website.org/$1.php [L,NC,R=301]

选项 2:

RedirectMatch 301 ^/(.+?)\.asp$ http://www.website.org/$1.php

您还需要确保在清除浏览器缓存后或在新浏览器中进行测试,以避免旧浏览器缓存。

【讨论】:

  • 非常感谢您的澄清。我尝试了选项 2,效果很好。
【解决方案2】:

你试过了吗?

RewriteEngine On
RedirectMatch 301 ^.*/(.*)\.asp$ http://www.website.org/$1.php

【讨论】:

    【解决方案3】:

    试试这个方法:

    RewriteEngine On
    RewriteRule  ^(.*)\.asp$ http://www.website.org/$1.php [NC,R=301]
    

    【讨论】:

      猜你喜欢
      • 2013-01-19
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 2021-07-22
      相关资源
      最近更新 更多