1

こんにちは、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]

なぜそれが機能するのかわかりませんが、機能します

4

0 に答える 0