我的子域是动态的,如果它们是顶级的,则需要由一个规则处理,如果它们不是,则它们包含第二个处理程序。
这是我所拥有的:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} !^(www\.)?(www|ftp|mail|webmail)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+)\.domain\.com$ [NC]
#This is successful
RewriteRule (.*) displaylist.php?shorturl=%2 [NC,QSA]
#NOT WORKING
RewriteRule /id/([0-9+])$ viewpage.php?id=$1 [NC,QSA]
所以 subdomain.domain.com 可以正常工作,但 subdomain.domain.com/id/1230/ 不能。
捕获下一行的规则不起作用,只显示 displaylist.php,所有相关链接都已损坏。
编辑:
新规则,重写工作,但没有一个相关文件是完整的
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} !^(www\.)?(www|ftp|mail|webmail)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+)\.domain\.com$ [NC]
#This is successful
RewriteRule (.*) displaylist.php?shorturl=%2 [NC,QSA]
#Working, but relative files (like css) aren't loading correctly
RewriteCond %{THE_REQUEST} id/([0-9]+)/?
RewriteRule ^(.*) viewpage.php?id=%1 [NC,L]