我的nginx.conf
有一个包含以下内容的服务器博客:
location ~ \.php$ {
root /var/www/html/blog;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location /blog {
root /var/www/html/blog;
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
但是当我尝试访问/blog/wp-admin
这些设置时,我的浏览器会陷入某个重定向循环。
如果我将nginx.conf
中的根网址更改为/var/www/html
,则/blog/wp-admin
有效,但我的帖子永久链接会给我404错误。
我的WP文件位于/var/www/html/blog
。我安装了“SSL不安全内容修复程序”插件,因为我的图片在我的网站上出现混合内容错误,该网站的Cloudflare页面规则始终使用SSL。
我的WP address
和WP home
都设置为http://xxx/blog
。
有人修了类似的东西吗?
由于
答案 0 :(得分:1)
我认为主要问题是与root
指令不一致。您的PHP配置在/var/www/html/blog
中有WordPress,而您的静态配置在/var/www/html/blog/blog
中有WordPress。
假设WordPress安装在/var/www/html/blog
的根目录中,并且对于真实文件和永久链接,URI应以/blog/
为前缀,则入口点的正确URI应为{{1} }。
/blog/index.php
文件应该是:
nginx.conf
如果您在外部root /var/www/html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
location /blog {
include /etc/nginx/mime.types;
try_files $uri $uri/ /blog/index.php;
}
容器中有一个有冲突的root
指令,则上述server
指令可以放在两个root
块未修改强>
我会尝试location
而不是/blog/index.php
作为/blog/index.php?q=$uri&$args
的最后一个元素,因为根据我的经验,WordPress使用REQUEST_URI参数来路由永久链接而不是try_files
参数正如你暗示的那样,但YMMV。
如果您在此服务器根目录中确实有其他应用程序,并希望更完全地隔离WordPress q
,则可以嵌套PHP位置块,如下所示:
root