重定向已经重写的URL(指向新的基础文件)

时间:2014-03-24 16:48:16

标签: php regex .htaccess mod-rewrite redirect

使用新系统替换旧系统,需要创建新文件和新网址

但旧网址重定向到新网址非常重要

目前我正在本地测试并设置了两个简单文件,item.phpitem-newpage.php

这是我到目前为止所尝试的内容:

RewriteEngine on
RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item/$ /item.php?size=$1&color=$2
RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item-newpage/$ /item-newpage.php?size=$1&color=$2
RedirectMatch 301 ^([a-zA-Z]+)-([a-zA-Z]+)-item/$ ^$1-$2-item-newpage/$ [R=301,L]

还试过这个:

RewriteEngine on
RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item/$ /item.php?size=$1&color=$2
RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item-newpage/$ /item-newpage.php?size=$1&color=$2
RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item/$ ^$1-$2-item-newpage/$ [R=301,L]

但是还没有重定向

另外,我真的想删除我的.htaccess文件中的旧文件的引用(即第2行),并在可能的情况下将其从服务器中删除

@anubhava,将其归结为预期的结果:

www.mysite.com/small-blue-item/

应该301重定向到

www.mysite.com/small-blue-item-newpage/

记住/small-blue-item-newpage/现在由新文件提供支持

1 个答案:

答案 0 :(得分:0)

您可以使用此代码:

RewriteEngine on

RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item/?$ /$1-$2-item-newpage/ [R=301,L]

RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-item-newpage/$ /item-newpage.php?size=$1&color=$2 [L,QSA]