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

使用.htaccess将非www重定向到www,.htaccess,redirect,.htaccess,Redirect,我在我的根目录上访问一个文件,如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 %{HTT

我在我的根目录上访问一个文件,如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上可用的选项。但是,这些答案对我都不起作用。因此,这不是一个重复的问题。我尊重网站的规则和条款


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

如果您的htaccess位于/provider文件夹中,则必须使用目标url中指向目录的完整路径

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

这将正确地从以下位置重定向您的url:


测试重定向时,请确保清除缓存,特别是考虑到您使用的是301永久重定向。您还可以打开开发工具,并确保在开发工具打开时关闭缓存。然后让它保持打开状态,并再次加载URL。注意:最好使用302重定向进行测试,这样浏览器就不会缓存它。@MikeRockett我已经通过关闭浏览器的缓存来处理它了,每次更改后我也会清除站点缓存。根据你的建议,我试着选择302,但仍然面临同样的问题。还有其他建议或想法吗
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]