it-swarm.com.de

Verweigern Sie den Zugriff auf eine von zwei Sites, die denselben .htaccess verwenden

Ich muss meine .htaccess -Datei einrichten, um den Zugriff auf die Site zu verweigern, wenn sie auf den staging.example.com zugreifen.

Ich habe einen Magento 2-Store und habe die Bereitstellung mit Capistrano eingerichtet, die auf zwei separaten Domänen bereitgestellt wird: staging.example.com und example.com. Sie haben dieselbe .htaccess -Datei, und ich möchte den Zugriff auf die Staging-Site nur über IP zulassen.

Sie verwenden derzeit Cpanel und haben keinen Zugriff auf die vhost-Dateien.

2
gabehou

Sie können so etwas wie diesen Code in Ihrer DOCUMENT_ROOT/.htaccess -Datei verwenden:

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]

Quelle: Antwort von anubhava bei Stapelüberlauf

Sie können auch bestimmte IP-Adressen zulassen und den Rest damit ablehnen:

order deny,allow
allow from 31.24.232.14
allow from 127.0.0.0
allow from 192.168.0.0
deny from all

Dies könnte auch helfen:

<If "%{HTTP_Host} != 'www.example.com'">
Redirect / http://www.example.com/
</If>

Es besteht eine gute Chance, dass der Letzte genau das ist, was Sie wollen. Wenn der Code funktioniert, wird festgestellt, dass die geladene Website nicht example.com (sondern Ihre Subdomain) ist. Und wenn es Ihre Subdomain ist, werden alle IP-Adressen mit Ausnahme derjenigen blockiert, die Sie in der Erlaubnisliste aufgeführt haben.

<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>

Sie könnten auch versuchen:

<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>

Für Apache 2.4+

Wenn Sie require ip verwenden möchten, müssen Sie dies möglicherweise folgendermaßen tun:

Require all denied
Require ip 123.123.123.123

Lesen Sie mehr: https://stackoverflow.com/questions/37865658/htaccess-allow-deny-ip-using-require-Apache-2-4

Vielleicht funktioniert das ?:

<If "%{HTTP_Host} = 'staging.example.com'">
Require all denied
Require ip 123.123.123.123
</if>

Quellen zeigen auch, dass Sie RequireAny benötigen, um nur bestimmte IPs zuzulassen. Wenn dies der Fall ist, müssen Sie es möglicherweise für Ihre Subdomain-Anforderungsbedingung ändern:

<RequireAny>
Require ip 1.2.3.4
Require ip 23.34.45.56
</RequireAny>
3
Michael d