.htaccess重定向规则,用于重定向具有不同结构的类似URL

时间:2016-09-23 02:31:08

标签: php redirect mod-rewrite

我需要在.htaccess中重写规则。我有用户从谷歌到我不再存在的旧网站链接。

旧网站:

newsite.com/search/docs/harry+potter+reviews

我需要重定向到:

having

重定向应为301? (Google可以移动内容)。

2 个答案:

答案 0 :(得分:0)

对于更通用的方法,您可以使用类似

的方法
RedirectMatch "^/search/pdf/docs/(.*)" "http://newsite.com/search/docs/$1"

或针对您的具体案例

Redirect 301 "/search/pdf/harry-potter-reviews" "http://newsite.com/search/docs/harry+potter+reviews"

您也可以使用mod_rewrite

更多信息here

希望这有帮助

答案 1 :(得分:0)

您似乎正在进行两次单独的映射:pdf - > docs,和 - - > +

如果准确,您可以按照以下方式执行此操作:

RewriteEngine On    
RewriteRule (.+)-(.+) $1+$2 [N]
RewriteRule ^search/pdf/(.+) /search/docs/$1 [R=301]

[N]标志表示"只要它仍然匹配"再次执行它,这将导致全局搜索和替换 - +,无论有多少。完成后,它会重定向任何&#pdf'指向' docs'。

的网址

注意事项:

1)我假设您将此文件放在文档根目录中的.htaccess文件中。

2)+通常是URL中的保留字符,并且在某些情况下使用它会导致Bad Things Happening。你已被警告过了。