.htaccess htaccessdomain.com访问www.domain.com是可行的,但它会丢失与搜索引擎优化相关的其他规则
编辑:已修复.htaccess htaccessdomain.com访问www.domain.com是可行的,但它会丢失与搜索引擎优化相关的其他规则,.htaccess,seo,dns,rewrite,.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/$1 [L,R=301] 好代
好吧,在这个网站和谷歌上徘徊了几个小时后,我发现了问题: 错误代码:
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/$1 [L,R=301]
好代码:
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI} [L,R=301]
请求URI似乎不像$1那样工作。。。因此,我正在努力学习改写mod_
问题是: 条件:
- SEO URL的基本重写规则
- 域从domain.com重定向到www.domain.com
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]
你的规则是这样的:
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
将在应用该规则后使其停止。如果不起作用,请告诉我。您的规则如下:
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
将在应用该规则后使其停止。如果它不起作用,请告诉我。好吧,在这个网站和谷歌上徘徊了几个小时后,我发现了问题:
错误代码:
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/$1 [L,R=301]
好台词:
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI} [L,R=301]
请求URI似乎不像$1那样工作。。。因此,我正在努力学习改写mod_ 好吧,在这个网站和谷歌上徘徊了几个小时后,我发现了问题: 错误代码:
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/$1 [L,R=301]
好台词:
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI} [L,R=301]
请求URI似乎不像$1那样工作。。。因此,我正在努力学习改写mod_ @anubhava我对多个php文件有多个规则。我只是举个例子。重写规则中的完整URL无法解决测试中的问题。实际上,它使像“/Video+1234”类型的URL这样的普通WWW URL变成了“/index.php?Video=1234”。。。。因此,使用您提到的配置:www.domain.com/Video+1234变为www.domain.com/index.php?Video=1234-这与我想要的正好相反:DYou也可以将该答案作为示例,并将相同的概念应用于所有重定向规则。只要您正在执行内部重定向no
[R]
,并且有[L]
标记,它将只处理该规则,不应弄乱任何其他内容。我在您的问题中指出,您在重写规则中有^Video\(.+)\+([0-9]+)$
,但尝试匹配文本Video+1234
,这将失败。因此,我将您的正则表达式更改为^Video\+([0-9]+)$
,因此刚刚编辑了上面的答案,请重试。@anubhava通过更改正则表达式,php脚本没有注册变量,所以我甚至没有检查非www url。我制作的www.domain.com/Video+1234
就是一个例子,但我的URL实际上更长,就像www.domain.com/Video不是另一个lolcat+1234
。结果:没有php变量注册(以及根据[L,NC]
标志的存在而产生的不同php错误)@anubhava好的,我也测试了主要问题(我的问题),除了没有注册变量之外,它仍然会生成php变量URLthemselves@anubhava我有多个php文件的多个规则。我只是举个例子。重写规则中的完整URL无法解决测试中的问题。实际上,它使像“/Video+1234”类型的URL这样的普通WWW URL变成了“/index.php?Video=1234”。。。。因此,使用您提到的配置:www.domain.com/Video+1234变为www.domain.com/index.php?Video=1234-这与我想要的正好相反:DYou也可以将该答案作为示例,并将相同的概念应用于所有重定向规则。只要您正在执行内部重定向no[R]
,并且有[L]
标记,它将只处理该规则,不应弄乱任何其他内容。我在您的问题中指出,您在重写规则中有^Video\(.+)\+([0-9]+)$
,但尝试匹配文本Video+1234
,这将失败。因此,我将您的正则表达式更改为^Video\+([0-9]+)$
,因此刚刚编辑了上面的答案,请重试。@anubhava通过更改正则表达式,php脚本没有注册变量,所以我甚至没有检查非www url。我制作的www.domain.com/Video+1234
就是一个例子,但我的URL实际上更长,就像www.domain.com/Video不是另一个lolcat+1234
。结果:没有php变量注册(以及根据[L,NC]
标志的存在而产生的不同php错误)@anubhava好的,我也测试了主要问题(我的问题),它仍然会生成php变量URL,除了没有注册变量本身