Apache-2.2
為什麼nginx將埠8080上的請求重定向到埠80(apache)
我在 Ubuntu 12.04 上的 apache2(埠 80)上有一個 wordpress 部落格設置,我還有一個 nginx 設置在埠 8080 上偵聽為同一個部落格提供服務。我的問題是,每當我嘗試在埠 8080 上打開部落格時,nginx 會將請求重定向到不應該發生的 apache。我正在發布 /etc/nginx/sites-enabled/wordpress 的內容
server { listen 8080; root /var/www; index index.php index.html index.htm; server_name foobartech.strangled.net:8080; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; deny all; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SERVER_PORT 8080; port_in_redirect off; }
我還設置了 cgi.fix_pathinfo=0
在 /etc/php5/fpm/php.ini
這是 WordPress 的限制。它遵循您在選項中設置的 URL,因此每個請求/連結都將被重定向到預設使用埠 80 的站點 URL。
我解決了!!就是這樣:
編輯目前主題的 function.php 並在打開的 php 標記後添加以下行 remove_filter(’template_redirect’,‘redirect_canonical’); 保存並退出
現在打開您的 wp-includes/ms-settings.php 並找到以下行(行號:~23)
if ( !isset( $current_site ) || !isset( $current_blog ) ) {
在此行之後添加:
$_SERVER['HTTP_HOST'] = preg_replace( '|:\d+$|', '', $_SERVER['HTTP_HOST'] );
並保存並退出。重新啟動 apache2 和 nginx 並使用 curl -I IP 檢查請求沒有被重定向。