問題描述:
最新版本 WordPress,使用 docker 部署并用 nginx 做反代,在設置固定鏈接為樸素時一切正常,設置為其他打開就是 500。
看日志有這樣的錯誤:
[core:error] [pid 66] [client 172.18.0.1:50794] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: [address]/wordpress/
環(huán)境描述:
使用 docker-compose 安裝的 wordpress,配置如下:
version: '3.1'
services:
wordpress:
image: wordpress
ports:
- 8082:80
links:
- mysql
environment:
WORDPRESS_DB_PASSWORD: xxxxxx
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: xxxxxxx
然后因為博客是掛載域名的二級路徑下,所以改了 wp-config.php 文件:
define('WP_SITEURL', '/wordpress');
define('WP_HOME', '/wordpress');
$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/wordpress/wp-admin/", $_SERVER['REQUEST_URI']);
然后宿主機中,nginx 配置如下:
location /wordpress/ {
proxy_pass http://0.0.0.0:8082/;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
很多地方說是 .htaccess 文件的問題,但是我檢查發(fā)現(xiàn)每次都是能正常生成的,目前是:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
3 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
根據描述,你懷疑是.htaccess
的問題。但是建議先檢查一下你是否開啟了靜態(tài)緩存,比如是否啟用了 wp super cache 等,把緩存的靜態(tài)文件清理一下。

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
我記得以前好像碰到過類似的。
是不是標題有中文,然后你用sample-post,url中有中文,會解碼,然后會出錯,你自定義改成id的測一下,或者寫文章那里文章url設置一下。

蝴蝶不菲
TA貢獻1810條經驗 獲得超4個贊
目前暫時解決了,但是不清楚原因。
解決方法是修改 docker container 里的 .htaccess
內容為:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
nginx 配置不變。
如果有知道原因的菊苣麻煩補充一下,感謝。
- 3 回答
- 0 關注
- 702 瀏覽
添加回答
舉報
0/150
提交
取消