问题描述
|
我已打开通配符子域,并且此重写在我的根目录中以捕获子域和文件夹:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\\.)?([^.]+)\\.mysite\\.com$ [NC]
RewriteRule ^(.*)$ process.PHP?id=%2
RewriteRule ^([^/.]+)/?$ process.PHP?id=%2/$1 [L]
如果没有请求的子文件夹,则倒数第二行只是将我们带到process.PHP?id = subdomain。如果确实存在请求的子文件夹(如subdomain.mysite.com/subfolder/),则最后一行应该带我们去process.PHP?id = subdomain / subfolder /。
所有这些都可以单独工作,但在一起却不起作用。我只希望它在没有指定子文件夹的情况下使用第一个,或者在没有子文件夹的情况下使用。我怀疑它们需要与正则表达式结合使用,但是我对如何表达这一点感到困惑。
解决方法
交换最后两行的顺序。第二到最后一行可能会变得贪婪并匹配两种情况...