Nginx
Nginx 將特定路徑重定向到 Wordpress 之外的子域
我有一個使用由Nginx提供支持的****Wordpress的主網站(使用 HTTPS ),我需要將特定路徑重定向到另一台伺服器,以響應子域(無 SSL)。
https://example.com``http://files.example.com
無論我嘗試什麼,重寫或重定向 301,我都會進入 Wordpress 的 404 錯誤頁面。我想我無法在我的 Nginx 配置中離開 Wordpress 位置:
server { listen 443 ssl; listen [::]:443; server_name example.com; root /var/www/wordpress; index index.php index.html index.htm; access_log /var/log/nginx/example.access.log; error_log /var/log/nginx/example.error.log; location / { try_files $uri $uri/ /index.php?$is_args$args =404; } if (!-e $request_filename){ rewrite ^/(.*)$ /index.php break; } location = /favicon.ico { log_not_found off; access_log off; } location ~ \.php$ { include fastcgi.conf; fastcgi_pass php-wp; } location /files { rewrite ^/files(.*)$ http://files.example.com/files$1 redirect; } }
這塊
if
_if (!-e $request_filename){ rewrite ^/(.*)$ /index.php break; }
將對文件夾中缺少的任何文件的任何請求重寫
/var/www/wordpress
為 WordPressindex.php
。根本不需要這個if
塊,刪除它。指令的最後一個參數try_files
可以是新的 URI 或 HTTP 錯誤程式碼,但您正在嘗試同時使用兩者。將您的根位置塊更正為location / { try_files $uri $uri/ /index.php$is_args$args; }
對於重定向,您不需要單獨的
location
塊,只需使用rewrite ^/files http://files.example.com$request_uri redirect;
對於 HTTP 302 臨時重定向或
rewrite ^/files http://files.example.com$request_uri permanent;
用於 HTTP 301 永久重定向。