配置AuthUserFile /home/user/.htpasswd
AuthName "Developers Only"
AuthType Basic
Require valid-user
文件非常糟糕,我需要一些有关域和子域访问配置的帮助。我有一个htaccess文件要求用户访问我的域到Web根文件夹:
/home/user/public_html/web
问题是它需要我的子域的身份验证,我不希望它受到保护,因为它是为了公共访问。怎么能实现呢?
我的网络根目录位于/home/user/public_ftp/sites
,我的子域根目录位于www
此外,我在主域的htaccess文件中有一个重定向,强制用户使用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>
进行访问,但我不知道它是否存在冲突。这是重定向:
$(document).ready(function() {
function PopupCenterDual(url, title, w, h) {
var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;
width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var left = ((width / 2) - (w / 2)) + dualScreenLeft;
var top = ((height / 2) - (h / 2)) + dualScreenTop;
var newWindow = window.open(url, title, 'scrollbars=no, resizable=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
if (window.focus) {
newWindow.focus();
}
}
});
我正在使用Symfony2 for PHP,因此需要这样做。
提前感谢您的所有建议。
问候。
答案 0 :(得分:2)
这对我有用(只需设置允许的参考者,其余的将被拒绝):
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
答案 1 :(得分:0)
试试这个:
SetEnvIf host ^sub\.domain\.com$ noauth=1
#auth
AuthUserFile /home/user/.htpasswd
AuthName "Developers Only"
AuthType Basic
Require valid-user
#Here is where we allow/deny
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth
将 sub.domain.com 替换为您不想密码保护的子域。