注:この質問 の下で提案を試しましたが、機能しないか、無限のリダイレクトループエラーが発生します。
.htaccessファイルに次のものがあります。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Rewrite old links to new
Redirect 301 /howitworks.php /how-it-works
Redirect 301 /testimonials.php /testimonials
Redirect 301 /contact_us.php /customer-service
Redirect 301 /affiliates.php /affiliates
Redirect 301 /account.php /customer/account
Redirect 301 /shopping_cart.php /checkout/cart
Redirect 301 /products.php /starter-kits
Redirect 301 /login.php /customer/account/login
# Force to Admin if trying to access admin
RewriteCond %{HTTP_Host} www\.example\.com [NC]
RewriteCond %{REQUEST_URI} admin [NC]
RewriteRule ^(.*)$ https://admin.example.com/index.php/admin [R=301,L,QSA]
# Compress, Combine and Cache Javascript/CSS
RewriteRule ^(index.php/)?minify/([^/]+)(/.*.(js|css))$ lib/minify/m.php?f=$3&d=$2
# Always send 404 on missing files in these folders
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
# Never rewrite for existing files, directories and links
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !server-status
# Rewrite everything else to index.php
RewriteRule .* index.php [L]
# Force www in url and non-example domains to example
RewriteCond %{HTTP_Host} !^www\.example\.com [NC]
RewriteCond %{HTTP_Host} !^ww2\.example\.com [NC]
RewriteCond %{HTTP_Host} !^qa\.example\.com [NC]
RewriteCond %{HTTP_Host} !^uat\.example\.com [NC]
RewriteCond %{HTTP_Host} !^local\.example\.com [NC]
RewriteCond %{HTTP_Host} !^admin\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L,QSA]
</IfModule>
次のように書き直す必要があります。
書き直し: http://subdomain.example.com/tohttp://subdomain.example。 com/page
また、これで/ pageを非表示にします(/は/ pageであるかのように動作します)が、これは必須の要件ではありません。また、HTTPまたはHTTPSで動作するようにしたいと思います。
私はこれに何時間も苦労しているので、どんな助けでも大歓迎です。
ルートパスの正しいリダイレクトは次のとおりです。
RewriteEngine On
RewriteRule ^/$ /page [R]
これを1つのサブドメインにのみ強制する(書き換えブロックが仮想ホスト定義にある場合はほとんど発生しないはずです):
RewriteEngine on
RewriteCond %{HTTP_Host} =subdomain.example.com
RewriteRule ^/$ /page [R]
削除した応答をコピーする:
あなたのdocumentrootのhtaccessで単に:
RewriteEngine on
RewriteCond %{HTTP_Host} =subdomain.example.com
RewriteRule ^$ /page
ルートを別のパスに書き換えるには、2つのオプションがあります。
1)DirectoryIndex
DirectoryIndex anotherPath
2)Mod-rewrite:
RewriteEngine on
RewriteRule ^/?$ /anotherPath [L]
上記のオプションのいずれかを使用して、example.com/をexample.com/anotherPath。
参照:
1https://httpd.Apache.org/docs/current/mod/mod_dir.html
2