重定向301 - 页面页面(apache)html到htm和非www

时间:2012-01-31 02:28:22

标签: xml .htaccess http-status-code-301

服务器是apache,不是我知道这意味着什么。

需要/注释:

  1. 将所有访问次数重定向至www.oldsite.com和oldsite.com至www.newsite.com
  2. 旧网站使用.html扩展名,新网站使用.htm
  3. 新网站中大约一半的文件名与旧网站的文件名相匹配,因此我需要为每个页面指定重定向。
  4. 以下是示例代码:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.newsite.com/$1 [R=301,L]
    
    redirect 301 /index.html http://www.newsite.com/index.htm
    
    redirect 301 /pagetwo.html http://www.newsite.com/pagetwo.htm
    
    redirect 301 /pagethree.html http://www.newsite.com/thishasanewname.htm
    

    目前,当类型仅为www时,这适用于主页,但就是这样。任何人都可以告诉我如何实现我的所有目标:

    总结一下,我需要将所有流量从旧网站重定向到html文件名并不总是匹配的新网站,我已经开始使用.htm扩展,其中旧网站使用.html,我需要访问两个www。和非www版旧网站重定向到新网站的www版。

    请帮帮我一个人 - 我不是编码员,这对我来说真的很难

    道格

1 个答案:

答案 0 :(得分:1)

将上面.htaccess中的规则替换为以下规则。

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

#1 Redirect home page old->new
RewriteCond %{HTTP_HOST} oldsite\.com$ [NC] 
#send home page from old to new
RewriteRule ^$ http://www.newsite.com [L,R=301]

#2 place redirects here that do not have exact equivalents on newsite

#3 section
RewriteCond %{HTTP_HOST} oldsite\.com$ [NC] 
#send requests for html to htm (assuming everything else is the same)
RewriteCond %{REQUEST_URI} ^(.+\.htm)l[NC] 
RewriteRule ^ http://www.newsite.com%1 [L,R=301]

第1节会将旧网站的主页重定向到新网站的主页。

第3节会将http://oldsite.com/anypage.html重定向到http://newsite.com/anypage.htm

第2节 如果文件在新网站上没有确切的等效文件(减去.html - > .htm),如#3,则在#2之前放置,例如

Redirect 301 /pagethree.html http://www.newsite.com/thishasanewname.htm