.htaccess 如何使用正确的页面从非www重定向到www?
我正试图通过.htaccess 如何使用正确的页面从非www重定向到www?,.htaccess,redirect,http-status-code-301,.htaccess,Redirect,Http Status Code 301,我正试图通过.htaccess将example.com重定向到www.example.com: RewriteCond %{HTTP_HOST} ^example.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 问题:my site.com/contact.html重定向到www.example.com/index.php而不是www.example.com/contact.html 我怎样才能做到这一点 更新:
.htaccess
将example.com
重定向到www.example.com
:
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
问题:my site.com/contact.html
重定向到www.example.com/index.php
而不是www.example.com/contact.html
我怎样才能做到这一点
更新:这是我的Joomla网站的完整.htaccess
(注释已删除):
Options+FollowSymLinks
重新启动发动机
RewriteCond%{QUERY\u STRING}base64\u encode[^(]*\([^)]*\)[或]
重写cond%{QUERY_STRING}(|%3E)[NC,或]
重写条件%{QUERY\u STRING}全局(|\[|\%[0-9A-Z]{0,2})[或]
重写条件%{QUERY\u STRING}\u请求(|\[|\%[0-9A-Z]{0,2})
重写规则。*index.php[F]
######这是有问题的代码。。。
RewriteCond%{HTTP_HOST}^示例$[NC]
重写规则^(.*)$http://www.example/$1[R=301,L]
#重写基/
##开始-Joomla!核心SEF部分。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
重写cond%{REQUEST_URI}!^/index\.php
重写cond%{REQUEST_URI}/component/|(/[^.]*|\(php | html |提要| pdf | vcf |原始))$[NC]
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。*index.php[L]
#注意sitemap.xml
重写cond%{REQUEST_URI}^/sitemap.xml
重写规则。*/index.php?option=com_xmap&view=xml&tmpl=component&id=1&format=html[L]
我把我的两行代码移到了上,就在上重写引擎的下方,但又出现了同样的问题。毫无头绪
问题:example.com/contact.html重定向到www.example.com/index.php,而不是www.example.com/contact.html
我猜您的htaccess文件中还有其他规则,一个将所有内容路由到index.php的规则。您需要确保重定向规则在任何其他规则之前是
检查htaccess文件后,需要在第一条规则的末尾添加一个L
标志:
RewriteRule .* index.php [F,L]
因为没有它,即使应用了第一条规则,也会应用重定向(例如,它被重写为index.php
,队列中等待403响应)
问题:example.com/contact.html重定向到www.example.com/index.php,而不是www.example.com/contact.html
我猜您的htaccess文件中还有其他规则,一个将所有内容路由到index.php的规则。您需要确保重定向规则在任何其他规则之前是
检查htaccess文件后,需要在第一条规则的末尾添加一个L
标志:
RewriteRule .* index.php [F,L]
因为没有它,即使应用了第一条规则,也会应用重定向(例如,它被重写为index.php
,队列中等待403响应)
问题:example.com/contact.html重定向到www.example.com/index.php,而不是www.example.com/contact.html
我猜您的htaccess文件中还有其他规则,一个将所有内容路由到index.php的规则。您需要确保重定向规则在任何其他规则之前是
检查htaccess文件后,需要在第一条规则的末尾添加一个L
标志:
RewriteRule .* index.php [F,L]
因为没有它,即使应用了第一条规则,也会应用重定向(例如,它被重写为index.php
,队列中等待403响应)
问题:example.com/contact.html重定向到www.example.com/index.php,而不是www.example.com/contact.html
我猜您的htaccess文件中还有其他规则,一个将所有内容路由到index.php的规则。您需要确保重定向规则在任何其他规则之前是
检查htaccess文件后,需要在第一条规则的末尾添加一个L
标志:
RewriteRule .* index.php [F,L]
因为如果没有它,即使应用了第一条规则,也会应用重定向(例如,它被重写为index.php
,队列中有403响应等待)。首先取消注释行
# RewriteBase / //Remove #
在上面的一行下面写下这段代码
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
首先取消注释行
# RewriteBase / //Remove #
在上面的一行下面写下这段代码
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
首先取消注释行
# RewriteBase / //Remove #
在上面的一行下面写下这段代码
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
首先取消注释行
# RewriteBase / //Remove #
在上面的一行下面写下这段代码
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
我想我要求澄清已经错了,但是你可以删除这个
重写cond%{HTTP_HOST}!^www.example.com$[NC]
我看到你加了一个感叹号,我在别处看到这个重定向没有它。感叹号在这种情况下是做什么的,还是不正确
祝你度过愉快的一天。我想我要求澄清已经错了,但是你可以删除这个
重写cond%{HTTP_HOST}!^www.example.com$[NC]
我看到你加了一个感叹号,我在别处看到这个重定向没有它。感叹号在这种情况下是做什么的,还是不正确
祝你度过愉快的一天。我想我要求澄清已经错了,但是你可以删除这个
重写cond%{HTTP_HOST}!^www.example.com$[NC]
我看到你加了一个感叹号,我在别处看到这个重定向没有它。感叹号在这种情况下是做什么的,还是不正确
祝你度过愉快的一天。我想我要求澄清已经错了,但是你可以删除这个
重写cond%{HTTP_HOST}!^www.example.com$[NC]
我看到你加了一个感叹号,我在别处看到这个重定向没有它。感叹号在这种情况下是做什么的,还是不正确
祝你度过愉快的一天。@michi尝试在第一条规则中添加一个L
标志(在F
旁边)是的!这成功了!你能编辑你的答案以包含解决方案吗?我希望我没有问太多,但为什么它会起作用?谢谢,