htaccess将非www子文件夹重写为www子文件夹重定向到www root

Rob*_*ole 1 php apache .htaccess mod-rewrite redirect

我想重定向

mydomain.com/subfolder
Run Code Online (Sandbox Code Playgroud)

至

www.mydomain.com/subfolder
Run Code Online (Sandbox Code Playgroud)

使用.htaccess

这就是我尝试过的.

Root .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%{HTTP_HOST}/{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

子文件夹.htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(subfolder(?:/.*)?)$ http://www.%{HTTP_HOST}/$1 [R=301,L,NE]
Run Code Online (Sandbox Code Playgroud)

出于一个奇怪的原因,重定向

mydomain.com/subfolder
Run Code Online (Sandbox Code Playgroud)

至

www.mydomain.com
Run Code Online (Sandbox Code Playgroud)

我已经尝试只实现根.htaccess,只是子文件夹.htacess,root和子文件夹.htacess,没有.htaccess重定向,只使用PHP重定向重定向.所有这些选项都将mydomain.com/subfolder路由到www.mydomain.com.

是否有其他东西可以重定向流量?

谢谢

Pan*_*ack 5

看起来规则中存在一些语法错误.在root htaccess中尝试此操作以重定向到www包含子文件夹.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)