我正在一个可用于不同国家/地区的网站上工作。由于搜索引擎优化的原因,我们希望为每个国家/地区使用子目录。所以我们有example.com作为主要的域名。当您导航到example.com/jp/时,您会看到日文版本。NGINX代理网址到不同的子域
现在出于技术原因(Drupal的域模块的使用是确切的)我想用一个子域来放置网站。可以说jp.example.com。对于外部世界,人们将导航到/ jp /,但NGINX返回jp.example.com
jp.example.com和example.com都是相同的网站,但由于域模块它显示不同的内容。这意味着他们共享他们的代码库和理论上他们的虚拟主机配置。我一直在尝试很多东西,但最终这个:
server {
listen 80;
server_name www.example.com jp.example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location /jp(.+)$ {
proxy_pass http://jp.example.com$1;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
我已经离开了某些位置的条目,我觉得上面有相关的唯一因素,特别是第一个。但是,由于/ jp url不是一个页面,所以在example.com网站的一个404上产生了结果。
当我直接访问jp.example.com时,它确实有效。它可以做到,如果是这样,如何?