※ ChatGPTを利用し、要約された質問です(原文:htaccessの書き方)
htaccessの書き方
このQ&Aのポイント
htaccessに設定していないサブドメインにアクセスすると、通常のドメインの内容が表示されてしまいます。存在しないサブドメインにアクセスすると全てメインドメインの内容が表示されてしまうのは、検索エンジン対策としても思わしくないように思えます。
存在しないサブドメインへのアクセスは404エラーになるようにする方法がわかりません。
htaccessで使われる言語の知識がなく試行錯誤していますが、思うようにいきません。どなたかアドバイスいただければ助かります。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dog.abcd.com$
RewriteCond %{REQUEST_URI} !^/dog/
RewriteRule (.*) /dog/$1
RewriteCond %{HTTP_HOST} ^cat.abcd.com$
RewriteCond %{REQUEST_URI} !^/cat/
RewriteRule (.*) /cat/$1
サブドメインを追加するには上記の記述をhtaccessに記入すればよいとサーバー会社の説明にありましたので、その通りにしました。
ところが、htaccessに設定していないサブドメインにアクセスすると、通常のドメインの内容が表示されてしまいます。
登録ドメインがabcd.comだとして、設定していないサブドメインがtest.abcd.comだとすると、test.abcd.comにアクセスするとabcd.comの内容がそのまま表示されてしまいます。
存在しないサブドメインにアクセスすると全てメインドメインの内容が表示されてしまうのは、検索エンジン対策としても思わしくないように思えます。
出来れば、存在しないサブドメインへのアクセスは404エラーになるようにしたいのですが、方法がわかりません。
htaccessで使われる言語の知識がなくチンプンカンプンなので
適当に以下のような感じでいろいろ試行錯誤していますが、なかなか思うようにいきません。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dog.abcd.com$
RewriteCond %{REQUEST_URI} !^/dog/
RewriteRule (.*) /dog/$1
RewriteCond %{HTTP_HOST} ^abcd.com$
RewriteCond %{REQUEST_URI} !^/
RewriteRule (.*) /$1
RewriteCond %{HTTP_HOST} (ここでabcd.comまたはdog.abcd.com以外のリクエストは)$
RewriteCond %{REQUEST_URI} !^/404/
RewriteRule (.*) /404/$1
を表示させる、としたいのですが、このような命令文はありますでしょうか?
どなたかアドバイスいただければ大変助かります。
お礼
有難うございました。適当に試行錯誤していたところ、教えた頂いた方法とは別の方法で、偶然自己解決できました。