使用.htaccess将非www重定向到www

时间:2016-04-28 12:56:39

标签: .htaccess redirect

我在我的root上访问一个文件,例如 example.com/demo/provider ,它会重定向到 www.example.com

如何更正此问题,以便将其正确重定向到 www.example.com/demo/provider

我尝试了什么:

尝试1

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

尝试2

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

尝试3

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

我也尝试了其他一些代码,任何建议都将受到赞赏谢谢!

注意: 我已经在Stackoverflow上搜索了可用的选项。但是,答案都没有对我有用。所以,这不是一个重复的问题。我尊重网站的规则和条款。

我的.htaccess文件位于提供程序文件夹中。您可以将其作为子域/目录。

1 个答案:

答案 0 :(得分:1)

如果您的htaccess位于/ provider文件夹中,那么您必须使用目标网址中dir的完整路径,

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/demo/provider/$1 [R=301,L]

或者

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

这将正确地重定向您的网址: