我有一个客户端域,其中有数千个页面正在转移到新域。 .html的命名约定已经改变,我知道htaccess可以以某种方式处理它。
以下是一个例子:
旧网站: http://oldsite.com/state/cityname-index.html
新网站: http://newsite.com/state/computer-support-cityname-index.html
目前这超出了我的理解范围。我会感激一点帮助。谢谢!
答案 0 :(得分: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]
是会影响重写规则的标志。 / p>
我写给你的这个规则捕获状态(第一个括号)和城市名(第二个括号),然后它重定向到新网站替换$ n(其中n是前面的括号的数字)内容。
QSA 标志(查询字符串追加)将旧网站请求中的任何参数添加到新生成的请求中。
R = 301 标志将生成一个代码为301的浏览器重定向(永久重定向)。
有关mod_rewrite的更多信息,请参阅http://httpd.apache.org/docs/current/mod/mod_rewrite.html