こんにちは、htaccess と mod_rewrite を使用したワイルドカード サブドメインに問題があります。
www.domain.com/index.php?foo=x&bar=y を xy.domain.com に変換したい
私のhtaccessは次のようになります
RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteCond %{HTTP_HOST} ^(.*?)-(.*?).domain.com$
RewriteRule (.*) /index.php?foo=%1&bar=%2
これは機能しますが、xy.domain.com にアクセスすると小さな問題が 1 つあります。そのショーwww.domain.comですが、xy.domain.com/z(「z」は「asdfasdfasdfasdfasdf」であっても、すべての値にすることができます)に行くと、正しいページが表示されます.私のアプリケーションはzを使用していません.理由はありませんが、正しいページを表示する必要があります。
解決
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*?)-(.*?).domain.com$ [NC]
RewriteRule (.*) index.php?foo=%1&bar=%2 [NC]
なぜそれが機能するのかわかりませんが、機能します