我在配置 .htaccess
文件时非常糟糕,我需要一些关于我的域和子域访问配置的帮助。我有一个 htaccess 文件,要求用户访问我的域到 Web 根文件夹:
AuthUserFile /home/user/.htpasswd
AuthName "Developers Only"
AuthType Basic
Require valid-user
问题是它需要对我的子域进行身份验证,我不希望它受到保护,因为它是供公共(public)访问的。如何实现?
我的网站根目录位于 /home/user/public_html/web
,我的子域根目录位于 /home/user/public_ftp/sites
此外,我在主域的 htaccess 文件中有一个重定向,以强制用户使用 www
访问,我不知道它是否会发生冲突。这是重定向:
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
我正在为 PHP 使用 Symfony2,所以这是必需的。
提前感谢您的所有建议。
问候。
最佳答案
这对我有用(只需设置允许的引荐来源,其余的将被拒绝):
SetEnvIfNoCase Referer "^http://example.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://example.com$" locally_linked=1
SetEnvIfNoCase Referer "^http://www.example.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.example.com$" locally_linked=1
SetEnvIfNoCase Referer "^http://subdomain.example.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://subdomain.example.com$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1
在此之后你可以做:
Order Allow,Deny
Allow from env=locally_linked
关于apache - .htaccess - 从域密码保护中排除子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34267736/