mod_rewrite と .htaccess を有効にしてからhttpd.conf
、このコードをディレクトリの.htaccess
下に配置します。DOCUMENT_ROOT
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^www\.primarydomain\.com$ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^\s\?]+)
RewriteRule ^ http://www.%1.com [R=302,L]
正常に動作していることを確認したら、302 を 301 に変更します。
http://www.primarydomain.com/foo
PS:物理ディレクトリのようにすべての URL を にリダイレクトすることに注意してfoo
くださいhttp://www.foo.com
。
編集 - 特定の既知のフォルダーとの一致を避けるには、次のように否定先読みを使用します。
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^www\.primarydomain\.com$ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^\s\?]+)
RewriteRule ^(?!(foo|bar|baz)/).*$ http://www.%1.com [R=302,L]