htaccessでサブドメインを作ってみました。これまでのところうまくいっています。サブドメインを別のスクリプト内で Get-Parameter として使用しています。
ただし、誰かがこのパラメーターをそのまま使用すると、subdomain-parameter が上書きされます。
user1.domain.com/?site=user2 は user2.domain.com を表示します。(インターンは www.domain.com/index.php?site=user2 です)
そのため、サイトを ?site=user2 から user2.domain にリダイレクトしようとしましたが、[R] 修飾子を使用するたびに URL が変更され、ローカル フォルダーが表示されます。
RewriteBase /path/to/basefolder も役に立ちませんでした。
アドレスバーを実際に /?site=user1 または /index.php?site=user1 ではなく user1.domain.com に変更する方法を知っている人はいますか?
それとも私が何を間違えたのでしょうか?^^
これが私の現在のコードです:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\?]+)\?(.*?)&?site=([^&\ ]+)([^\ ]*)
RewriteRule ^ http://%4.domain.com/%2?%3%5 [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteCond %{REQUEST_URI} !\.css$ [NC]
RewriteCond %{REQUEST_URI} !\.png$ [NC]
RewriteRule \.php index.php
RewriteCond %{HTTP_HOST} ^(.*).domain.com$
RewriteCond %{REQUEST_URI} !^/.*/
RewriteRule (.*) index.php?site=%1 [NC,QSA,L]
<Files .htaccess>
order allow,deny
deny from all
</Files>