在曾经从.asp迁移到.php的网站上,我在.htaccess文件中使用了以下内容,以确保关注旧链接的用户最终会出现在右页:
RewriteEngine On
RedirectMatch 301 (.*)\.asp$ http://www.website.org/$1.php
我刚刚将网站移动到一个新的服务器,在那里,.asp页面的请求现在最终在地址中有一个额外的斜杠,紧接在页面名称之前:
http://www.website.org//page.php
(如何)可以调整上面的.htaccess代码以消除那些额外的斜杠?
答案 0 :(得分:1)
您假设RewriteEngine On
需要RedirectMatch
,但事实并非如此。 RedirectMatch
是mod_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]