Nginxサーバーにサーバーブロックを設定しました。ドメインtestsite.com。個別のWordPressインストールをルートフォルダーの直接の子フォルダーにインストールできるようにしたい(例:/var/www/html/testsite.com /childfolder1) 、/ var/www/html/testsite.com /childfolder2など、テストサイトからアクセスできます.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;
}
}