私のサブドメインは動的であり、トップレベルの場合は1つのルールで処理する必要があり、そうでない場合は2番目のハンドラーが含まれている必要があります。
これが私が持っているものです:
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]