Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 如何使用正确的页面从非www重定向到www?_.htaccess_Redirect_Http Status Code 301 - Fatal编程技术网

.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
旁边)是的!这成功了!你能编辑你的答案以包含解决方案吗?我希望我没有问太多,但为什么它会起作用?谢谢,