如何将旧的长URL重定向到新的SEO友好URL?

时间:2014-09-27 22:00:31

标签: php apache .htaccess mod-rewrite redirect

我正在尝试重定向旧网址:

www.mydomain.com/prodotti/G/YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ..

这个,更短和SEO友好:

www.mydomain.com/moto/aprilia/caponord_1200

我正在写htaccess上的301重定向,这是我使用的行:

 Redirect 301  /prodotti/G/YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ.. http://www.mywebsite.com/moto/aprilia/caponord_1200

但是当我在浏览器上插入旧URL时,重定向结果为:

  www.mywebsite.com/moto/aprilia/caponord_1200?/prodotti/G/YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ..

我的301重定向有什么问题?如何在没有URL合并的情况下获得纯重定向?

由于

这是带有modrewrite测试的htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|media|js|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteRule ^/moto/aprilia/capondor_1200$ /prodrotti/G/YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ.. [R=301, L]

2 个答案:

答案 0 :(得分:1)

尝试像这样的重写规则

RewriteEngine On
RewriteRule ^/moto/aprilia/capondor_1200$ /prodrotti/G/YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ [R=301]

您可能需要在重写规则中将YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ替换为整个字符串,因为我认为..意味着它比您提供的更长?

答案 1 :(得分:1)

你的htaccess应该是这样的

RewriteEngine on

RewriteRule ^prodrotti/G/YToyOntzOjg6IklEX01BUkNBIjtzOjI6IjI3IjtzOjEwOiJJRF9NT0RFTExPIjtzOjM6IjU2OCI7fQ\.\.$ /moto/aprilia/capondor_1200? [R=301,L]

RewriteCond $1 !^(index\.php|images|css|media|js|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]