我面临着类似的问题这个问题我使用 Nginx 作为运行 WordPress 的 Apache 服务器 (Ubuntu) 的代理。网站的内部链接全部提供 301 重定向到 localhost。
例如,链接:wwww.example.com/internal-link
重定向到localhost/internal-link
该链接会出现错误 404。
这阿帕奇配置如下:
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
ServerAlias *.example.com
DocumentRoot /var/www/html
...
这Nginx配置文件如下:
server {
# Where IP is server IP and example is the domain name
listen IP:80;
server_name static.example.com;
location / {
proxy_pass http://localhost:8480;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen IP:80;
server_name example.com;
rewrite ^ $scheme://www.example.com$request_uri redirect;
}
server {
listen IP:80; # your server's public IP address
server_name www.example.com; # your domain name
location / {
proxy_pass http://localhost:8020;
proxy_set_header X-Real-IP $remote_addr;
}
}
这.htaccess
是 WordPress 默认生成的:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
以下是Apache访问日志的一些记录:
10.0.2.2 - - [15/Jul/2016:07:11:31 -0400] "GET /link/ HTTP/1.0" 301 335 "-" "Mozilla/5.0 (compatible; Cliqzbot/1.0 +http://cliqz.com/company/cliqzbot)"
10.0.2.2 - - [15/Jul/2016:07:08:02 -0400] "GET /link/ HTTP/1.0" 404 5396 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0)
知道是什么原因造成的以及如何解决吗?
答案1
我使用以下 NGINX 服务器块来处理proxy_pass
对本地 Apache HTTP 服务器的所有请求:
# cat /usr/local/etc/nginx/conf.d/apache24.conf
server {
listen 80;
location / {
proxy_pass http://127.0.0.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header server;
}
}
#
VirtualHost
并以正常方式配置Apache 的 HTTP 服务器。