我按原样定义了一个特定的.htaccess,以便将所有流量从根文件夹重新路由到子文件夹中的相同URL,但子域例外。
这是我的文件:
#RewriteEngine on
#RewriteRule ^(.*)$ http://www.mydomain.fr/blog/$1 [R=301,QSA]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^joe\.mydomain\.fr$ [NC]
RewriteCond %{HTTP_HOST} !^lab\.mydomain\.fr$ [NC]
RewriteCond %{REQUEST_URI} !^joe(.*)
RewriteCond %{REQUEST_URI} !^lab(.*)
RedirectMatch ^/$ http://www.mydomain.fr/blog/
</IfModule>
此文件完全符合我的要求:例如,当我输入类似www.mydomain.fr/wp-admin
的内容时,它将重定向到www.mydomain.fr/blog/wp-admin
,但将从中排除子域joe.mydomain.fr
和lab.mydomain.fr
重定向。
但是,发生的事情是,如果我转到joe.mydomain.fr?test=1
,服务器将直接将我重定向到joe.mydomain.fr
,但是GET参数消失了。
如何避免这种情况?
我尝试将[NC]
替换为[QSA]
或[R=301,QSA]
,但出现内部服务器错误。
谢谢。