nginx位置相同但指令不同

时间:2016-09-17 02:38:13

标签: wordpress nginx

试着看看这是否可能。

我们有一个应用程序和一个wordpress安装。

是否可以在同一文件夹中使用2个位置,但在不同情况下。实施例..

http://domain.com/subfolder/ - 显示APP http://domain.com/subfolder/anything - 显示WP永久链接

现在,我们拥有它

http://domain.com/subfolder(没有/)显示应用

http://domain.com/subfolder/(带/)显示WP。

这确实有效,但是可以这样做,它只会显示WP如果URL包含子文件夹后的文本/ *

目前的Nginx conf:

location  ^~ /knowledge {

root /opt/domain.com/public/;
try_files $uri @backend;
}

location /knowledge/ {
index index.php index.html index.htm;

root /opt;
include /etc/nginx/php-wpsc.conf;
try_files $uri $uri/ /knowledge/index.php?q=$uri&$args;
}

1 个答案:

答案 0 :(得分:0)

显然保留WordPress的location /knowledge/块是有意义的,因为它与大多数情况相匹配,只需要覆盖一个案例。

通过使用具有更高优先级的位置块,可以从该位置块中删除特定URI。有关详细信息,请参阅this document

一种可能性是精确匹配位置块:

location = /knowledge/ {
    rewrite ^ /knowledge last;
}

或者可能将现有的location ^~ /knowledge块从前缀位置更改为正则表达式位置,使尾随/可选。

location ~ ^/knowledge/? { ... }

请注意,这会更改此位置块的评估顺序,因此可能会出现需要考虑的副作用。