我怎样才能让nginx在/博客上为WordPress服务?

时间:2015-06-17 作者:Dan Dascalescu

如何让WordPress生活在/blog, 而另一个应用程序处理根目录/, 使用nginx?

我有the ordinary subdomain setup 现在,这很好。

我读过https://codex.wordpress.org/Nginx 并根据serving WordPress as a subdirectory. 在里面wp-config.php 我有

define(\'WP_HOME\',\'http://example.com/blog\');
define(\'WP_SITEURL\',\'http://example.com/blog\');
但我一直收到404个错误,或者WordPress没有加载CSS文件。我也试过了

location /blog {
  try_files /var/www/wordpress/$uri /var/www/wordpress/$uri/ /blog/index.php?$args;
}
又是404。

这一定是一个常见问题,但我还没有找到它的搜索词(/blog 如此平凡无助)。

在哪里可以找到完整的nginx配置文件和wp-config WordPress live位于的设置/blog? 我是否需要更改MySQL数据库中的任何WP设置?

1 个回复
SO网友:Dan Dascalescu

以下是最有效的方法:

subdomain setup, 并确保http://wordpress.example.com 作品

在nginx默认配置中location 阻止用于/blog 代理子域:

location /blog {
    rewrite ^/blog(/?.*)$ $1 break;  # remove "/blog"
    proxy_set_header Host wordpress.example.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://wordpress.example.com;
}
  • 英寸wp-config.php, 拥有:

    define(\'WP_HOME\',\'http://idorecall.com/blig\');
    define(\'WP_SITEURL\',\'http://idorecall.com/blig\');
    
    我之所以说这“主要”是因为:

    某些页面元素可能未加载。例如,页脚中Avada主题使用的icomoon图标不会显示http://example.com/blog, 但是wordpress子域配置使用http,浏览器将拒绝加载许多资源,并发出“混合内容”警告。一种解决方案是在子域上也启用HTTPS(StartSSL有一个带有一个空闲子域的证书)。另一个,我怀疑,是你必须运行Wordpress database search and replace 属于http://wordpress.example.com 具有http://example.com/blog.

  • 结束

    相关推荐

    Wordpress的清漆+Nginx好吗?

    我正在安装我的新服务器,并试图为我的wordpress创建一些良好的环境,所以我想知道是否安装Varnish + Nginx 这是个好主意,可以加快我的wordpress网站的速度,或者有其他更好的组合,如果varnish和wordpress之间存在任何已知的问题谢谢你的帮助