我在子域名上运行博客。 “blog.ourcompanyname.com”。
Wordpress文件夹位于“/ var / www / wordpress”
下Apache实例在8081端口上运行(手动配置),并由Nginx(在80端口上运行)传递代理。我们需要NGINX的原因是因为我们在同一台服务器上运行第二个应用程序(VPS,Ubuntu 12.04 LTS),而且它不是“PHP”应用程序。
现在,一切顺利:您可以访问不同的页面,静态内容(图片等)正在运行。
但是,这是艰难的部分:
如果我启用永久链接(因为默认链接很糟糕) - 无论我在网址中输入什么内容,我都会在第一页(正面)上结束!
它可以是任何东西:例如,blog.ourcompanyname.com/2013/11/hello-world/ 或者blog.ourcompanyname.com/bla-bla-bla-bla /
我没有得到500或404错误。那令人毛骨悚然。
这是我们的APACHE2虚拟主机配置文件:
<VirtualHost *:8081>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/wordpress
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/wordpress/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
这是我们的NGINX配置文件:
server {
server_name blog.ourcompanyname.com;
access_log /var/log/nginx/blog.ourcompanyname.com.access.log main;
error_log /var/log/nginx/blog.ourcompanyname.com.error.log;
root /var/www/wordpress; # Wordpress blog
location / {
index index.php;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8081;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
.htaccess文件是通过wordpress生成的,所以我们根本不会触摸它。但是为了测试我还尝试将RewriteBase从“/”改为“/ wordpress /”以及其他与目录有关的东西,但无济于事。
拜托,帮助!