http://sub.mydomain.com/ へのアクセスを拒否しながら、(完全に) http://sub.mydomain.com/test (または http://sub.mydomain.com/test/ )
http://sub.mydomain.com/test/ の後ろにmagentoバックエンドがあります
.htaccessディレクティブ そのディレクトリとそのすべてのサブディレクトリに適用 なので、DocumentRootでのアクセスを禁止する必要があります。
http://sub.mydomain.com/.htaccess :
Order deny,allow
Deny from all
そして、アクセスを許可したい特定のサブディレクトリでそれを上書きします、
http://sub.mydomain.com/test/.htaccess :
Order allow,deny
Allow from all
ルートディレクトリに 。htaccess を追加し、次の行を追加しますか?
RewriteEngine On
# check if request is for subdomain
RewriteCond %{HTTP_Host} ^sub.mydomain.com$ [NC]
# check if 'test' isnt part of request
RewriteCond %{REQUEST_URI} !^/test/?(.*)$ [NC]
# if subdomain and no 'test' part, redirect to main domain...
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R,L]
したがって、「/ test /」セクションが存在する場合、リダイレクトは行われません...
私はこれが非常に古いスレッドであることを知っていますが、私はこのシナリオに正確に数日間取り組み、ついにそれを機能させました。
Apacheバージョン2.4(おそらく)では、ディレクティブ<RequireAll>
および<RequireAny>
を使用することが可能です。これを使用して、特定のサブフォルダへのアクセスを許可できます。
.htaccessの私のソリューション(このサイトからインスピレーションを得た: https://www.the-art-of-web.com/system/Apache-authorization/ ):
SetEnvIf REQUEST_URI "^/test/.*" PUBLICACCESS
# Use for multiple subfolders:
# SetEnvIf REQUEST_URI "^/(?:test|test2|test3|test4)/.*" PUBLICACCESS
<RequireAny>
<RequireAll>
# Public access
Require env PUBLICACCESS
Require all granted
</RequireAll>
<RequireAll>
# Require user and password
AuthType Basic
AuthName "Secured"
AuthUserFile /var/www/example.com/.htpasswd
Require valid-user
</RequireAll>
</RequireAny>
拒否の場合はsub.mydomain.comに、許可の場合はsub.mydomain.com/testに.htaccessファイルを作成してみてください。
または http://sub.mydomain.com/ からリダイレクトして、サブディレクトリを拒否できます。