2

最近、マルチドメイン ホスティングを購入し、プランでいくつかのドメインをホストしました。他のドメインは、プライマリ ドメインのサブフォルダーでホストしています。にアクセスするwww.secondarydomain.comと、 にある Web サイトが表示されwww.primarydomain.com/secondarydomainます。

今私がしたいのは、www.primarydomain.com/secondarydomainwww.secondarydomain.com を有効に保ちながら、誰かがアクセスしようとしたときに直接アクセスできないようにすることです。

どうやってやるの?

4

2 に答える 2

2

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/fooPS:物理ディレクトリのようにすべての 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]
于 2012-09-19T20:00:06.403 に答える
1

IIS では、誰かが www.primarydomain.com/secondarydomain にアクセスした場合に www.secondarydomain.com にリダイレクトできるようにルールを設定できることを知っています。検索するのは基本的なパターン マッチであり、「true」に解決された場合は、指定したとおりにリダイレクトされます。

www.primarydomain.com/secondarydomain をまったく機能させたくない場合は、代わりにエラー ページにリダイレクトすることを除いて、同じことを行うことができます。apache や他のサーバーにも同様の機能があると確信していますが、IIS でしか扱っていません。これは、URL の書き換えとリダイレクトと呼ばれます。

お役に立てれば。

于 2012-09-19T19:52:20.007 に答える