我打开了通配符子域,并在我的根目录中重写以捕获子域和文件夹:
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。最后一行应该带我们去process.php?id = subdomain / subfolder /如果确实有一个子文件夹请求(如subdomain.mysite.com/subfolder /)。
这些都是独立的,但它们一起起作用。如果没有指定子文件夹,我只想让它使用第一个,如果没有,则只想使用最后一个。我怀疑他们需要与正则表达式相结合,但我对如何表达这一点感到很黑暗?
答案 0 :(得分:0)
交换最后2行的顺序。第二行到最后一行可能变得贪婪并匹配两种情况......