gpt4 book ai didi

mod-rewrite - Nginx 禁用特定路径/url 的 url 重写

转载 作者:行者123 更新时间:2023-12-05 05:23:14 26 4
gpt4 key购买 nike

我有以下用于 url 重写的 nginx 配置

location / { ##merge
try_files $uri $uri/ /index.php?q=$uri&$args;
}

location /devtools/phpmyadmin/ { ##merge
root /var/www/domain.tld/web;

location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/lib/php5-fpm/web2.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
}

/var/www/domain.tld/web/ 目录中有一个 /api/ 目录,我想为此禁用 url 重写。因此,如果我想使用 index.php 从 url 进行访问:http://domain.tld/api/index.php/function/method

如何修改nginx配置文件?


编辑:

我尝试了以下重写,但没有成功:

location = /api {
rewrite ^ /api/index.php;
}

最佳答案

我承认我看不懂你的配置文件。通常,您会定义一个 root 以供所有(或大部分)location block 继承。通常一个单独的 location ~\.php$ block 来处理通过 FastCGI 将 .php 脚本卸载到 PHP 处理器。

暂时忽略您的 location/devtools/phpmyadmin/ block ,典型的实现如下所示:

root /var/www/domain.tld/web;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/lib/php5-fpm/web2.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}

nginx 指令是 documented here .

如果您希望以 /api 开头的 URI 使用不同的 Controller ,您可以添加:

location /api {
try_files $uri $uri/ /api/index.php;
}

我看不到 location/devtools/phpmyadmin/ block 的用途,因为它似乎没有添加更多功能。

关于mod-rewrite - Nginx 禁用特定路径/url 的 url 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com