从子目录将 nginx 配置到 运行 wordpress 时出现问题,但在 url 中没有子目录名称
Problem configuring nginx to run wordpress from subdirectory but without subdirectory name in url
我是 nginx 的新手。
我有两种类型的代码,一种是简单的 php 运行 到 index2.php
,我有一个名为 wordpress
的目录,里面有一个完整的 wordpress 网站。
我想要实现的是让它们都在主域上 运行 没有带有子目录名称的斜杠。
location ~ (/lottery-results|patternTwo) {
try_files $uri /index2.php$is_args$args;
}
location / {
try_files $uri /wordpress/index.php?$args;
}
这是我目前使用的配置,它可以很好地满足我的目的。
第一个指令通过 index2.php
中的简单 php 加载一些 url。
第二个指令加载 wordpress,但是当我打开这个 url:
http://domain.test/
它将我发送至:
http://domain.test/wordpress/wp-admin/setup-config.php
我的问题是 /wordpress
部分我希望 url 是:
http://domain.test/wp-admin/setup-config.php
相反。
我尝试使用 alias 和 root,但它没有改变任何东西,(老实说,我什至不明白 alias 和 root 的作用!)
编辑:PHP-FPM 处理程序:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
让我们试试这个:
# This block should be OUTSIDE the server block!
map $request_uri $new_uri {
~^/wordpress(/.*) ;
default $request_uri;
}
server {
...
location ~ (/lottery-results|patternTwo) {
try_files $uri /index2.php$is_args$args;
}
location / {
try_files $uri /wordpress$uri /wordpress/index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
# Here the order of directives DOES matter
# This should be the first:
include /Applications/MAMP/conf/nginx/fastcgi_params;
# This should be the second:
fastcgi_param REQUEST_URI $new_uri;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
}
}
我是 nginx 的新手。
我有两种类型的代码,一种是简单的 php 运行 到 index2.php
,我有一个名为 wordpress
的目录,里面有一个完整的 wordpress 网站。
我想要实现的是让它们都在主域上 运行 没有带有子目录名称的斜杠。
location ~ (/lottery-results|patternTwo) {
try_files $uri /index2.php$is_args$args;
}
location / {
try_files $uri /wordpress/index.php?$args;
}
这是我目前使用的配置,它可以很好地满足我的目的。
第一个指令通过 index2.php
中的简单 php 加载一些 url。
第二个指令加载 wordpress,但是当我打开这个 url:
http://domain.test/
它将我发送至:
http://domain.test/wordpress/wp-admin/setup-config.php
我的问题是 /wordpress
部分我希望 url 是:
http://domain.test/wp-admin/setup-config.php
相反。
我尝试使用 alias 和 root,但它没有改变任何东西,(老实说,我什至不明白 alias 和 root 的作用!)
编辑:PHP-FPM 处理程序:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
让我们试试这个:
# This block should be OUTSIDE the server block!
map $request_uri $new_uri {
~^/wordpress(/.*) ;
default $request_uri;
}
server {
...
location ~ (/lottery-results|patternTwo) {
try_files $uri /index2.php$is_args$args;
}
location / {
try_files $uri /wordpress$uri /wordpress/index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
# Here the order of directives DOES matter
# This should be the first:
include /Applications/MAMP/conf/nginx/fastcgi_params;
# This should be the second:
fastcgi_param REQUEST_URI $new_uri;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
}
}