如果我想将public_html
的用户归为http://mysite/user1/
,我很高兴
在~
user1
如果访问http://mysite/
,则会转到/usr/share/nginx/html/index.html
我将config设置如下:
server {
listen 80 default_Server;
# Home directories
location ~ ^/(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
}
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
当我访问http://mysite/user1/
时,它可以正常运作。
但现在http://mysite/
变为404
。
我对正则表达式和规则搜索序列不太熟悉
如何让用户回家和root都工作?
答案 0 :(得分:1)
URI /
在内部映射到URI /index.html
,它也与您的正则表达式匹配。假设您服务器上的唯一子目录是用户,您可以在正则表达式中强制使用第二个/
。
location ~ ^/(.+?)/(.*)?$ {
alias /home/$1/public_html/$2;
}
或者,明确/index.html
URI(通过移动root
语句并添加空location
块):
root /usr/share/nginx/html;
...
location = /index.html {}
有关详情,请参阅this document。