同じIPアドレスをポイントする2つのサブドメインa.website.comとb.website.comがあります。 b.website.comをa.website.com:8080にリダイレクトしたい。私の.htaccessファイルにこれがあります...
RewriteEngine on
RewriteCond {HTTP_Host} b\.website\.com
RewriteRule ^(.*)$ http://b.website.com:8080$1 [L]
...しかし、機能しません。
それを機能させる方法はありますか?
常に単純なVirtualHostを使用できます。
<VirtualHost *:80>
ServerName b.website.com
RedirectPermanent / http://a.website.com:8080/
</VirtualHost>
.htaccessファイルを使用する場合は、書き換え条件に%記号がないだけです。
RewriteEngine on
RewriteCond %{HTTP_Host} b.website.com
RewriteRule ^(.*)$ http://a.website.com:8080$1 [L]
ふりをするリダイレクトのタイプを明示的に指定できます。
リダイレクトルールのテスト中は、一時的なリダイレクト(302)を使用することをお勧めします。
# In a VirtualHost file
...
Redirect [301|302] /old_location http://new_domain/newlocation
# In a .httaccess file
...
RewriteRule ^(.*)$ http://new_domain/$1 [R=302,L]
リダイレクトできるのは、あるパターンに一致するリクエストのみです。
# In a VirtualHost file
...
RedirectMatch [301|302] ^/public/(.*)$ http://public.example.com/$1
# In a .httaccess file
...
RewriteRule ^/public/(.*)$ http://public.example.com/$1 [R=302,L]