The Problem.
无论我输入哪个URL,所有页面都会显示站点的静态首页。已知的站点URL加载主页(但保留输入的URL),应该是404个路径,如
/I-know-you-do-not-exist-4343
同时加载主页(同样,保留URL)。
我可以毫无问题地访问WordPress管理员,这只是网站前端的问题。
而且the site works fine 如果我完全移除permalinks?post=2
. 网站css/js/图像加载良好。
Just the facts, please:
- Ubuntu 14.04
- Apache 2.4.7
PHP 5.6.19-1- nginx 1.4.6(前端)
- Wordpress 4.4.2
- mod\\u rewrite已启用(下面的conf文件)
- 权限和所有权都已设置。WP可以重写。htaccess文件
我通常在中动态定义两个站点url选项
wp-config
但已经尝试删除它们,并在wp配置中手动输入它们,并直接将其输入数据库。
define(\'WP_SITEURL\', \'http://\' . $_SERVER[\'SERVER_NAME\'] . \'/wordpress\');
define(\'WP_HOME\', \'http://\' . $_SERVER[\'SERVER_NAME\']);
我刷新了permalinks,捣碎了Cookie,重新启动了大约800次apache。
我已禁用所有插件。
出于源代码管理的原因,Wordpress位于子文件夹ala中Jaquith’s skeleton. 大体上
/var/www/html/
/var/www/html/app/ (wp-content)
/var/www/html/media/ (wp-content/uploads)
/var/www/html/wordpress/
下面是我的conf文件中的位:
DocumentRoot /var/www/html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
基本nginx->apache工作正常。发送时间:8080和
ports.conf
以及我的虚拟主机站点。conf文件正在侦听它。也就是说,如果我
<?php phpinfo(); ?>
在一个静态php文件中,所有操作都按预期进行。
最初,我遇到了无限循环问题,并将其添加到我的站点插件中:
remove_filter(\'template_redirect\', \'redirect_canonical’);
以下是nginx conf(基本上是internetz说要使用的标准版本):
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \\.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\\.ht {
deny all;
}
}
下面是典型请求的响应标头:
HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Thu, 17 Mar 2016 02:13:24 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 5600
Connection: keep-alive
Link: <http://example.com/wp-json/>; rel="https://api.w.org/", <http://example.com/>; rel=shortlink
Vary: Accept-Encoding
Content-Encoding: gzip