0

まったく同じファイルを指す 2 つのサブドメインがあります。サーバー側のコードを使用してスタイリング/画像を制御します。サブドメインの 1 つだけが特定のページにアクセスできるようにしたい。RewriteRules を使用してこれを達成するにはどうすればよいですか?

テスト用にさまざまなドメインをセットアップしていますが、それらはすべてhttp://MICROSOFTまたはで始まりますhttp://APPLEhttp://MICROSOFT.somethingelse.com/ http://MICROSOFT.another.sub.sub.domain/ でサイトにアクセスした場合にのみページを表示したいが、 http: //APPLE.comやその他のものは表示したくないホスト名に APPLE を使用します。

http://microsoft.anythinghere/special-sub-directory/に移動すると期待どおりにページが表示されますが、http://apple.anythinghere/special-sub-directory/に移動すると 404 エラーが表示されます。

このコードを必要に応じて変更するにはどうすればよいですか?

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^http://apple\.[A-z0-9]+/special-sub-directory/?$ - [R=404]
</IfModule>

これは WordPress サイトであるため、次のルールに従って動作する必要があることに注意してください。

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
4

1 に答える 1

1

RewriteRuleプロトコルとホスト名を取得しません。必要なのは追加RewriteCondです:

RewriteCond %{HTTP_HOST} ^apple\. [NC]
RewriteRule ^special-sub-directory/?$ - [R=404]

これらは、私の開発マシンで機能するルールです。

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^localhost [NC]
RewriteRule ^special-sub-directory/?$ - [R=404]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
  • 彼らは中に置かれました/.htaccess
  • http://localhost/special-sub-directory/生成された 404 エラーへのアクセス
  • http://127.0.0.1/special-sub-directory/表示された正しいページへのアクセス
  • 他のルールは機能した
于 2012-11-29T20:14:10.097 に答える