将旧动态URL重写为新的动态URL

时间:2017-03-27 14:07:31

标签: php .htaccess url mod-rewrite

我的网站使用以下网址格式

localhost / loc-New-Delhi-India(loc - 在所有网址和以前用于更改的文字中很常见)

现在,我已将其更改为

localhost / New-Delhi-India / location(删除了loc并将其作为“位置”放在URL的末尾)。为此,我使用以下重写规则

RewriteEngine on
RewriteRule ^([A-Za-z0-9-]+)/(location)?$ city-detail.php?cityurl=$1

cityurl在'localhost'之后抓取字符串并搜索db。

现在,由于该网站被Google严格索引并在社交媒体上分享了很多,我想将这些网址重定向到新的网址。我尝试了下面的代码,但这不起作用。

RewriteEngine on
RewriteRule "loc-(.*)" "^([A-Za-z0-9-]+)/(location)?$ city-detail.php?cityurl=$1" [R]

新网址已成功创建,但旧网址无法重定向到新网址。我确定有些不对劲但找不到。我研究了旧问题,但它们有点不同。在这里,我没有在localhost之后包含任何子目录,并在城市名称后添加目录'localhost'。

任何帮助将不胜感激lott:)

1 个答案:

答案 0 :(得分:0)

以下可能有效:

RewriteRule loc-(.*) $1/location [R=301,QSA]

RewriteRule ^([A-Za-z0-9-]+)/(location)?$ city-detail.php?cityurl=$1

第一条规则将触发301重定向,这也会告诉任何搜索引擎您的资源已被永久移动,这可能会让他们更改其索引以反映这一点。一旦你重定向,第二条规则应该正常触发。