SO に関する投稿を 2 日間読んでいて、12 のサンプルを試しましたが、書き直しが機能しません。
これが私の状況
です。UbuntuでApacheを実行しています。
ルート (file1.php、file2.php) とフォルダー (web サイト)
に 2 つのファイルがあり、www.mydomain.com と domain.com をフォルダーにリダイレクトします。その部分は、この一連のルールで機能しています。
RewriteCond %{HTTP_HOST} ^(www.)?mydomain\.com$
RewriteCond %{REQUEST_URI} !^/website/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /website/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain\.com$
RewriteRule ^(/)?$ website/ [L]
現在、サブドメインを使用しようとしています。
demo.mydomain.com は www.mydomain.com/file1.php?v=demo に移動する必要があります demo.mydomain.com/file2.php は www.mydomain.com/file2.php?v=demo に移動する必要があります。ブラウザのアドレス バーは変更されません。
私はすでにこれを持っています:
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ http://www.mydomain.com%{REQUEST_URI}?v=%1 [L]
##
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ file1.php?v=%1 [L]
これにより、demo.mydomain.com/file2.php が www.mydomain.com/file2.php?v=demo に移動します。これで問題ありませんが、アドレス バーの URL も変更されます。それはよくありません。
demo.mydomain.com は www.mydomain.com にリダイレクトされ、それが Web サイト フォルダに移動しますが、これは完全に間違っています。
ご覧のとおり、もうすぐそこです。小さなピースが欠けているだけです。
私を助けてください。