.htaccess 301重定向添加了一个额外的斜杠

时间:2015-04-17 17:33:48

标签: php .htaccess mod-rewrite redirect

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

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

我刚刚将网站移动到一个新的服务器,在那里,.asp页面的请求现在最终在地址中有一个额外的斜杠,紧接在页面名称之前:

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

(如何)可以调整上面的.htaccess代码以消除那些额外的斜杠?

3 个答案:

答案 0 :(得分:1)

您假设RewriteEngine On需要RedirectMatch,但事实并非如此。 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

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

答案 1 :(得分:0)

你试过这个吗?

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

答案 2 :(得分:0)

尝试这种方式:

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