编辑:已修复
好吧,经过这个网站和谷歌几个小时的绊倒,我发现了问题:
错误代码:
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]
答案 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
将在应用该规则后停止。如果它不起作用,请告诉我。