我有一个客户端域,有成千上万的页面正在移动到一个新的域。 .html的命名约定已经改变了,我知道htaccess可以以某种方式处理它。htaccess 301从旧网站到新网站
下面是一个例子:
旧网站: http://oldsite.com/state/cityname-index.html
新网站: http://newsite.com/state/computer-support-cityname-index.html
这是出乎我目前的理解。我会感激一点帮助。谢谢!
我有一个客户端域,有成千上万的页面正在移动到一个新的域。 .html的命名约定已经改变了,我知道htaccess可以以某种方式处理它。htaccess 301从旧网站到新网站
下面是一个例子:
旧网站: http://oldsite.com/state/cityname-index.html
新网站: http://newsite.com/state/computer-support-cityname-index.html
这是出乎我目前的理解。我会感激一点帮助。谢谢!
如果你想重定向旧的网页到新的一个,你可以使用改写这样的:
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标志(Query String Append)将从旧站点请求中添加任何参数到新生成的请求。
R = 301标志将生成带代码301(浏览器重定向)的浏览器重定向。
有关mod_rewrite的更多信息,请参阅http://httpd.apache.org/docs/current/mod/mod_rewrite.html
非常好!非常感谢。 – coneH34D
不客气:)不要忘记标记为答案^^ – Oussama
最后一个问题。我有他们的另一个网站,这有点复杂。它是oldsite.com/state/computer-repair-in-city-index.html,需要转到相同的目的地newsite.com/state/computer-support-city-index.html。 – coneH34D