我想要映射
sub1.mydomain.com
至sub1.mydomain.com/index.php?sub1
sub1.mydomain.com/?aa=bb
至sub1.mydomain.com/index.php?sub1&aa=bb
sub1.mydomain.com/something
至sub1.mydomain.com/index.php?sub1/something
sub1.mydomain.com/something?aa=bb
至sub1.mydomain.com/index.php?sub1/somehting&aa=bb
这些也与sub2.mydomain.com。
没有重定向,就像SimpleMVCFramework为主域做的那样。 我之所以想使用sub1.mydomain.com作为mydomain.com/sub1(重新调用mydomain.com/index.php?sub1)的用户调用的别名。我将两个subs的根目录设置为与主域相同。
这是.htaccess代码(位于根目录中),但它的错误为500.
# Map subdomains to controller
RewriteCond %{HTTP_HOST} !^www # if the sub is not www
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com
RewriteCond %{QUERY_STRING} !(sub1|sub2) # preventing loops
RewriteRule ^/?$ /index.php?%1 [NC,QSA,L]
# this meant to be match if url path is empty eg. sub1.mydomain.com/?aa=bb
RewriteRule ^(.+)$ /index.php?%1/$1 [NC,QSA,L]
# anytime else.
如果我简单地使用第二个角色,使用(.*)
模式它匹配尾部斜杠(sub1.mydomain.com/index.php?sub1/),使用(.+)
模式匹配这种方式: sub1.mydomain.com/index.php?sub1/index.php
提前致谢,
B'/ P>
答案 0 :(得分:0)
解决。
RewriteConds仅适用于RewriteRule之后的第一个,我需要复制粘贴条件。