Wordpress、tomcat、apache2 和 nginx:wordpress 上的重定向循環
我為一個網站安裝了tomcat,為另一個網站安裝了apache2(wordpress)。問題發生在 wordpress 網站上。有用於反向代理的 nginx,這裡是:
server { listen 80; root /var/www/html/; index index.php index.html index.htm; server_name test.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:8081; } location ~ /\.ht { deny all; } } server { listen 80; server_name conf.example.com; location / { proxy_pass http://127.0.0.1:8080; } } server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; # Make site accessible from http://localhost/ server_name batterykazakhstan.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } }
所以tomcat執行良好。但是 Wordpress 總是重定向到循環中的歡迎頁面。你能幫忙解決這個問題嗎?我閱讀了它並嘗試了將functions.php放在頂部建議的解決方案:
remove_filter('template_redirect', 'redirect_canonical');
但這沒有幫助..
編輯1:
埠 8081 將連接到 tomcat 伺服器並打開 wordpress 站點 test.example.com
埠 8080 轉到 conf.example.com 並打開執行正常的 tomcat 伺服器網站。
編輯 2: 這是 apache 配置:
ServerAdmin webmaster@localhost DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
編輯 3:
我這裡只有兩個 .htaccess 文件:
/var/www/html/wp-content/uploads/wp-clone/.htaccess
內容:
<Files> Order allow,deny Deny from all Satisfy all </Files>
還有一個在這裡
/var/www/html/wp-content/plugins/akismet/.htaccess
有內容:
<IfModule !mod_authz_core.c> Order Deny,Allow Deny from all </IfModule> # Apache 2.4 <IfModule mod_authz_core.c> Require all denied </IfModule> # Akismet CSS and JS <FilesMatch "^(form\.js|akismet\.js|akismet\.css)$"> <IfModule !mod_authz_core.c> Allow from all </IfModule> <IfModule mod_authz_core.c> Require all granted </IfModule> </FilesMatch> # Akismet images <FilesMatch "^logo-full-2x\.png$"> <IfModule !mod_authz_core.c> Allow from all </IfModule> <IfModule mod_authz_core.c> Require all granted </IfModule> </FilesMatch>
編輯4:
wp-admin 工作正常,它只是網站本身。Wordpress 地址 (URL) 和站點地址 (URL) 都設置為http://test.example.com
讓我在這裡總結一下解決方案。
在這個範例中,我們的作者將建構一個典型的 Nginx-Apache Web 基礎設施。Nginx 將用作 Web 代理,將流量重定向到不同的後端伺服器。這是一個顯示關係的簡單網路圖。
作者希望將所有 PHP 流量重定向到他的後端 Apache Web 伺服器,但由於我們可能在 php 副檔名後面有參數,因此以 php 結尾的匹配將失敗。我們使用了 location 塊:
location ~ \.php
這將匹配任何帶有 .php 關鍵字的 URL,作者應該能夠執行後端 PHP 應用程序(例如 WordPress)。對於全新安裝,我們可能還需要檢查 .htaccess 文件是否位於 WordPress 的根文件夾中。
參考連結: Nginx 反向代理管理員指南、WordPress htaccess 文件、htaccess WordPress 安全