web-dev-qa-db-ja.com

.htaccessを作成して、別のドメインをホストするサブディレクトリへのアクセスをブロックする方法

メインドメイン(me.com)があり、mom.comフォルダーのサブディレクトリに母親のWebサイト(public_html)のファイルをホストしているので、mom.comme.com/mom

私がやりたいのは、me.com/momへの訪問者を邪魔することなく、mom.comを介してサイトにアクセスしようとするとエラーが発生するようにすることです。

4
Stan

編集:エラーを修正しました!

これが理論です:

RewriteEngine on
RewriteCond %{HTTP_Host} mom.com$ [NC]
RewriteRule ^mom/ - [R=404,L]

一部のバージョンでは、上記が機能しない場合、このいトリックを行うことができます

RewriteEngine on
RewriteCond %{HTTP_Host} mom.com$ [NC]
RewriteRule ^mom/ /someurlthatdoesntexist [L]

404基金ではなく403禁制で問題ない場合は、Fオプションを使用できます。

RewriteEngine on
RewriteCond %{HTTP_Host} mom.com$ [NC]
RewriteRule ^mom/ - [F,L]

ただし、考慮すべきことがもう1つあります。 .htaccessファイルは最上位から下にスキャンされるため、mom.comに.htaccessファイルがある場合はそれらが優先されます。次に、.htaccessファイルに以下を追加しますin mom.com。これはファイルの最上部にあるはずです(RewriteEngine Onの直後)。

RewriteEngine on
RewriteCond %{HTTP_Host} !mom.com$ [NC]
RewriteRule . - [R=404,L]

追加された!に注意してください。これは、ドメインがnot mom.comの場合に一致することを意味します。また、「すべてをキャッチ」を意味する.にも注意してください。

- [R=404,L]を必要に応じて他のパターンに置き換えます。

3
nitro2k01

Stanとnitro2k01の両方のソリューションは、私にとってはうまくいきませんでした。

次は私のために働いた:

# Place this .htacces file in /mom subdirectory
RewriteEngine On
RewriteCond %{HTTP_Host} ^www\.mom\.nl$ [NC]
RewriteRule ^(.*)$ - [L,R=404]

Public.wwwフォルダーで、以下を使用して機能させました。

RewriteEngine On
RewriteCond %{HTTP_Host} ^www\.mom\.nl$ [NC]
RewriteRule .? mom/%{REQUEST_URI} [L,QSA] 

これが他の人に役立つことを願っています。

1
Joël Meijering

.htaccessでこのルールを使用できます。

RewriteEngine on
RewriteCond %{HTTP_Host} ^(www\.)?me\.com [NC]
RewriteRule ^mom/.*$ /some-error-page.html [L,R]
1
ritu

入力のおかげで、私はあなたの助けに基づいてそれを機能させましたが、少し異なる方法で:BlueHost(my Host)でこの記事を見つけました。

私が使用したコードは次のとおりです。

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{HTTP_Host} ^(www.)?me.com$ [NC]
RewriteCond %{REQUEST_URI} ^/mom/(.*)$
RewriteRule ^(.*)$ - [L,R=404]

REQUEST_URIが欠けていたと思います。

これは、public_htmlまたは/mom/サブディレクトリの.htaccessファイルで機能します。

1
Stan