Nginx 多个位置指令的一个别名
Nginx one alias for multiple location directives
我已经在单独的目录中安装了一个项目,以使该项目在多个域上可用
location ^~ /phpRedisAdmin/css/ {
alias /home/phpRedisAdmin/css/;
}
location ^~ /phpRedisAdmin/js/ {
alias /home/phpRedisAdmin/js/;
}
location ^~ /phpRedisAdmin/images/ {
alias /home/phpRedisAdmin/images/;
}
为了防止为每个项目子目录声明一个位置指令,是否可以声明一个位置指令来处理所有可能的别名?
我正在寻找这样的东西(我不知道如何在别名指令中检索括号中的内容):
location ^~ /phpRedisAdmin/(css|images|js)/ {
alias /home/phpRedisAdmin/>> what should I insert here? <</;
}
问题解决了,我最终使用了这个解决方案:
location ^~ /phpRedisAdmin/(css|images|js)$ {
alias /home/phpRedisAdmin/;
}
你可以试试下面
location ~* /phpRedisAdmin/(?P<folder>css|images|js)/ {
alias /home/phpRedisAdmin/$folder;
}
您不应使用 alias
指令,root
指令就足够了。一种解决方案是为所有低于 /phpRedisAdmin
的 URI 定义一个 location
块。例如:
location ^~ /phpRedisAdmin/ {
root /home;
location ~ \.php$ {
...
}
}
如果您需要在此 location
中执行 PHP 个脚本,请添加一个嵌套位置(如上所示)。
如果您必须使用带有 alias
的正则表达式 location
,您将需要捕获 URI 的 整个 剩余部分。例如:
location ^~ /phpRedisAdmin/((?:css|images|js)/.*)$ {
alias /home/phpRedisAdmin/;
}
详情见this document。
我已经在单独的目录中安装了一个项目,以使该项目在多个域上可用
location ^~ /phpRedisAdmin/css/ {
alias /home/phpRedisAdmin/css/;
}
location ^~ /phpRedisAdmin/js/ {
alias /home/phpRedisAdmin/js/;
}
location ^~ /phpRedisAdmin/images/ {
alias /home/phpRedisAdmin/images/;
}
为了防止为每个项目子目录声明一个位置指令,是否可以声明一个位置指令来处理所有可能的别名?
我正在寻找这样的东西(我不知道如何在别名指令中检索括号中的内容):
location ^~ /phpRedisAdmin/(css|images|js)/ {
alias /home/phpRedisAdmin/>> what should I insert here? <</;
}
问题解决了,我最终使用了这个解决方案:
location ^~ /phpRedisAdmin/(css|images|js)$ {
alias /home/phpRedisAdmin/;
}
你可以试试下面
location ~* /phpRedisAdmin/(?P<folder>css|images|js)/ {
alias /home/phpRedisAdmin/$folder;
}
您不应使用 alias
指令,root
指令就足够了。一种解决方案是为所有低于 /phpRedisAdmin
的 URI 定义一个 location
块。例如:
location ^~ /phpRedisAdmin/ {
root /home;
location ~ \.php$ {
...
}
}
如果您需要在此 location
中执行 PHP 个脚本,请添加一个嵌套位置(如上所示)。
如果您必须使用带有 alias
的正则表达式 location
,您将需要捕获 URI 的 整个 剩余部分。例如:
location ^~ /phpRedisAdmin/((?:css|images|js)/.*)$ {
alias /home/phpRedisAdmin/;
}
详情见this document。