2

我有一个客户域,其中有数千个页面正在移动到一个新域。.html 的命名约定已经改变,我知道 htaccess 可以以某种方式处理这个问题。

这是一个例子:

旧网站: http: //oldsite.com/state/cityname-index.html

新网站: http: //newsite.com/state/computer-support-cityname-index.html

这超出了我目前的理解。我会很感激一点帮助。谢谢!

4

1 回答 1

1

如果要将旧网站页面重定向到新页面,可以使用这样的重写:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com$ [NC]
RewriteRule ^([^/]+)/(.+)-index\.html$ http://newsite.com/$1/computer-support-$2-index.html [QSA,R=301]

第一行激活 htaccess 中的重写。

第二个检查当前请求是否针对旧网站。

如果是,则激活第三行,其中包含一个正则表达式和一个新链接,如果该正则表达式匹配,则重定向到,[QSA,R=301]最后是影响重写规则的标志。

我写给您的这条规则捕获了州(第一个括号)和城市名称(第二个括号),然后它重定向到新网站,用捕获的内容替换 $n(其中 n 是之前括号的编号)。

QSA标志(查询字符串附加)会将旧站点请求中的任何参数添加到新生成的请求中。

R=301标志将生成带有代码 301(永久重定向)的浏览器重定向。

有关 mod_rewrite 的更多信息,请参阅http://httpd.apache.org/docs/current/mod/mod_rewrite.html

于 2012-09-14T14:01:09.707 回答