Nginx
nginx子目錄萬用字元重寫
我已經在我的 nginx 伺服器上設置了一個伺服器塊,例如域testsite.com。我希望能夠將單獨的 WordPress 安裝安裝到根文件夾的直接子文件夾中,例如 /var/www/html/testsite.com/ childfolder1、 /var/www/html/testsite.com/ childfolder2等,所以他們可以通過 testsite.com/ childfolder1、 testsite.com/ childfolder2等訪問。
創建重定向的手動方法是像這樣插入它:
location /childfolder1 { index index.php; try_files $uri $uri/ /childfolder1/index.php?$args; }
並為每個站點重複它。使用
location /
僅涵蓋根目錄。有沒有辦法創建一個(正則表達式?)萬用字元規則,上面寫著:“對於每個直接子目錄,應用這個 try_files 命令”(這對於 WordPress 來說顯然總是相同的,只是文件夾名稱發生了變化)?location /*anydirectsubdirectory* { index index.php; try_files $uri $uri/ /*anydirectsubdirectory*/index.php?$args; }
我無法證明您想要做的事情是否有效,但下面是將您的“虛擬碼”轉換為實際的 nginx 配置(如果同樣的複制粘貼解決方案對您有效,這也應該繼續有效)。
location ~ /(?<anydirectsubdirectory>[^/]+) { index index.php; try_files $uri $uri/ /$anydirectsubdirectory/index.php?$args; }
試試這個~
server { listen 80; server_name example.com; charset utf-8; access_log logs/xxxxxx.access.log;
root /var/www/html; index index.php; location = / { return 301 /cn/; } location / { try_files $uri $uri/ /cn/index.php?q=$uri; } location /en { try_files $uri $uri/ /en/index.php?q=$uri; } location /my { try_files $uri $uri/ /my/index.php?q=$uri; } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
}