.htaccess
にアクセスしている場合、サイトへのアクセスを拒否するようにstaging.example.com
ファイルを設定する必要があります。
Magento 2ストアを所有しており、Capistranoを使用して展開をセットアップしました。これは、2つの別個のドメインstaging.example.com
およびexample.com
に展開します。それらは同じ.htaccess
ファイルを持ち、IPのみでステージングサイトへのアクセスを許可します。
現在Cpanelを使用しており、vhostファイルにアクセスできません。
DOCUMENT_ROOT/.htaccess
ファイルでこのコードのようなものを使用できます。RewriteEngine On RewriteCond %{HTTP_Host} ^(?:www\.)?subdomain\.com$ [NC] RewriteCond ${ipmap:%{REMOTE_ADDR}} !^(127\.0\.0\.1|192\.168\.|10\.|1\.2\.3\.4)$ RewriteRule ^ - [F]
ソース: answer from anubhava スタックオーバーフロー
また、特定のIPアドレスを許可し、残りを拒否することもできます:
order deny,allow
allow from 31.24.232.14
allow from 127.0.0.0
allow from 192.168.0.0
deny from all
これらも役立つ場合があります。
<If "%{HTTP_Host} != 'www.example.com'">
Redirect / http://www.example.com/
</If>
この最後のものがあなたが望むものである可能性は十分にあります。コードが機能する場合、ロードされたWebサイトがexample.com
ではない(ただし、サブドメイン)ことを検出します。また、サブドメインの場合、許可元にリストされているものを除くすべてのIPアドレスがブロックされます。
<If "%{HTTP_Host} != 'www.example.com'">
order deny,allow
allow from 31.24.232.14
allow from 127.0.0.0
allow from 192.168.0.0
deny from all
</If>
また試すことができます:
<If "%{HTTP_Host} = 'subdomain.example.com'">
order deny,allow
allow from 31.24.232.14
allow from 127.0.0.0
allow from 192.168.0.0
deny from all
</If>
require ip
を使用する場合は、次のようにする必要があります。
Require all denied
Require ip 123.123.123.123
続きを読む: https://stackoverflow.com/questions/37865658/htaccess-allow-deny-ip-using-require-Apache-2-4
たぶんこれは動作しますか?:
<If "%{HTTP_Host} = 'staging.example.com'">
Require all denied
Require ip 123.123.123.123
</if>
ソースは、特定のIPのみを許可するためにRequireAny
が必要であることも示しています。その場合は、サブドメインの要件条件に合わせて変更する必要があります。
<RequireAny>
Require ip 1.2.3.4
Require ip 23.34.45.56
</RequireAny>