Htaccess domain.com到www.domain.com有效,但它失去了与SEO相关的其他规则

时间:2011-04-18 18:50:14

标签: .htaccess seo dns rewrite

编辑:已修复

好吧,经过这个网站和谷歌几个小时的绊倒,我发现了问题:

错误代码:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

好代码:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI} [L,R=301]    

REQUEST_URI似乎不像$ 1那样工作......所以我正在努力学习mod_rewrite。


问题:

条件:

  • SEO网址的基本重写规则

  • 域名从domain.com重定向到www.domain.com

问题:

非www.domain.com页面丢失了他们的SEO-urls并转回原来的php变量:

实施例。

SEO-url: www.domain.com/Video+1234

NonWWW网址: domain.com/Video+1234

结果(浏览器地址栏):

www.domain.com/index.php?video=1234

所需:

www.domain.com/Video+1234

如何让服务器保留旧表单?

.htaccess片段:

RewriteEngine On
# RewriteBase /



RewriteRule ^Video\-(.+)\+([0-9]+)$ index.php?video=$2


RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

2 个答案:

答案 0 :(得分:1)

好吧,经过这个网站和谷歌几个小时的绊倒,我发现了问题:

错误代码:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

好行:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI} [L,R=301]    

REQUEST_URI似乎不像$ 1那样工作......所以我正在努力学习mod_rewrite。

答案 1 :(得分:0)

你的规则如下:

RewriteEngine On
Options +FollowSymlinks -MultiViews

RewriteRule ^Video\+([0-9]+)$ http://www.domain.com/index.php?video=$2 [L,NC]

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
第一条规则中的

L将在应用该规则后停止。如果它不起作用,请告诉我。