如上图所示,我的小网站目录结构。为了实现中英文分开访问,但后台又是一套维护想法,故在aaa目录上绑定了域名A.com(中文),在en目录上绑定了B.com(英文)。
A.com访问的静态文件放在cn目录中(cn目录未画出来,与en平级),B.com访问的静态文件放在en目录中。cn和en中各有一个相同的网页,A.com中的网页提交表单正常,但B.com中提交的表单不正常,报404错误。
知道配置文件有问题,故加了location(正确代码中有,此处不再写不正确的代码),使访问能够找到需要的php文件,但又报了405错误…各种试错找外援,最终外援给出了正确处理办法,下面为外援给的解决代码(我用的是宝塔面板管理网站的,所有配置文件之类直接在宝塔面板中修改),加入到B.com的server配置中即可:
#处理 HTML 静态文件的 location 块
location / {
root /www/wwwroot/aaa/en;
index index.html;
try_files $uri $uri/ =404;
}
# 处理 PHP 文件的 location 块
location ~ \.php$ {
root /www/wwwroot/aaa;
include enable-php-74.conf;
include /www/server/panel/vhost/rewrite/12.123.21.212.conf;#此处的IP为服务器的公网IP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 处理 404 错误
error_page 404 /404.html;
location = /404.html {
internal;
}
# 处理 500 错误
error_page 500 502 503 504 /50x.html;
location = /50x.html {
internal;
}