我有两个关于 Nginx 的问题,希望有人可以帮助我。
我已经在我的站点中设置了一个别名目录,名为 /wordpress/ 并使其指向我的 webroot 之外的一个文件,现在一切正常,花花公子,直到我尝试浏览父目录:/wordpress。它似乎想重定向到 *.x.co.uk(其中 x 代表我的域名)。配置跟随。
我的另一个问题是,我的 Auth 覆盖的范围不超过根目录 / 尽管在 / caluse 中以捕获任何不是 /wordpress/ 的东西,这再次让我感到困惑。因此,如果我去 /,我必须进行身份验证,但如果我去 /video,我可以在没有身份验证的情况下进入我的网站。
我对 Nginx 有点陌生,所以我在阅读 Wiki 时感到困惑,这很愚蠢。
有人有想法么?这是我的配置,供您观赏:
server {
listen 80;
server_name _;
root /server_ws/the_stage/htdocs;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
error_page 404 /error/notfound;
location /wordpress/ {
alias /server_ws/wordpress/;
# try_files $uri $uri/;
}
location ~* ^/wordpress/(.+).(jpg|jpeg|gif|css|png|js|ico|xml)$ {
alias /server_ws/wordpress/$1.$2;
access_log off;
expires 30d;
}
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/apache2/passwords;
index index.php;
if ($host = 'x.co.uk') {
rewrite ^/(.*)$ http://www.x.co.uk/$1 permanent;
}
if (-f $request_filename) {
break;
}
if (!-e $request_filename) {
rewrite . /index.php last;
}
try_files $uri $uri/ /index.php;
}
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
root /server_ws/the_stage/htdocs;
access_log off;
expires 30d;
}
}
以下是身份验证的一些日志条目。您可以在此看到一个机器人试图访问我的 robots.txt 并由于身份验证而失败:
2012/05/20 11:54:10 [error] 12059#0: *2008 no user/password was provided for basic authentication, client: 108.162.215.232, server: _, request: "GET /robots.txt HTTP/1.0", host: "www.x.co.uk"
但是后来我转到我网站上的 /video 并没有收到任何错误,但我得到了以下访问日志:
xxx.xxx.xxx.xxx - - [20/May/2012:12:51:35 +0000] "GET /video?cat=gaming&sort=upload_date HTTP/1.1" 301 185 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
这是 /wordpress 访问的最新日志:
xxx.xxx.xx.xxx - - [20/May/2012:13:01:08 +0000] "GET /wordpress HTTP/1.1" 301 185 "-" "Opera/9.80 (Windows NT 6.1; WOW64; U; Edition Campaign 21; en) Presto/2.10.229 Version/11.64"