我的应用程序结构如下:
我希望在请求www.mydomain.com或mydomain.com时将根设置为/var/www/app/htdocs
。
我想在请求example.mydomain.com时将根设置为/var/www/app/sites/example
。
我该如何实现?
到目前为止,我已经得到:
server {
listen 80;
index index.php index.html index.htm;
server_name ~^www\.(?P<sub>.+)\.mydomain\.com$ ~^(?P<sub>.+)\.mydomain\.com$;
root /var/www/app/sites/$sub;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
这将正确显示example.mydomain.com,但不会显示www.mydomain.com或mydomain.com。有任何想法吗?还可以将子域列入白名单吗?
谢谢。
答案 0 :(得分:0)
您可以在/ etc / nginx / sites-enabled中创建一个新文件 将其命名为example.mydomain.com
编辑文件,使用以下配置:
server {
listen 80 ;
server_name example.mydomain.com;
root /var/www/app/sites/example;
return 301 https://$server_name$request_uri;
large_client_header_buffers 8 32k;
if ($http_user_agent ~* Googlebot) {
return 403;
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
使用nginx -t reload检查配置文件 在您的域名服务提供商中进行输入。