gpt4 book ai didi

nginx - 在不使用文件扩展名的情况下调用由 nginx 提供的 PHP 页面

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

我确定这是一个非常简单的答案,但我似乎无法破解它。我对 nginx 也很陌生,但对 apache2 非常了解。我在 Ubuntu 上运行 nginx 并试图满足这两个请求:

  1. 当 URI 调用 filename 时让 nginx 服务 filename.php
    1. 调用 http://example.org/bob会服务 http://example.org/bob.php但还是http://example.org/bob显示在浏览器 URL 中
  2. 请求文件夹时,URL 中不显示“索引”
    1. 调用 http://example.org/jack/会服务 http://example.org/jack/index.php但是http://example.org/jack/仍然显示在 URL 中(而不是 http://example.org/jack/index )

我当前的配置是:

server {
listen 80;
root /var/www/html;
index index.php;

location / {
try_files $uri $uri/ @php;
}

location @php {
try_files $uri.php =404;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
}

rewrite ^/(.*)\.php$ /$1 redirect;

location ~ /\.ht {
deny all;
}
}

我觉得我真的很接近,要求 (1) 完美无缺,但我似乎找不到正确的配置来满足要求 (2)。

如果有帮助,这是在 Apache2 中运行的配置,启用了 mod_rewrite 模块:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d # if a folder isn't called ...
RewriteCond %{REQUEST_FILENAME}.php -f # but a php file is ...
RewriteRule ^(.*)$ $1.php # take the basename, add .php then call that

最佳答案

看到这可以帮助您启用 Apache2 重写规则到 nginx 规则:

https://www.nginx.com/blog/converting-apache-to-nginx-rewrite-rules/

location / {
if (!-e $request_filename){
rewrite ^(.*)$ /$1.php;
}
}

关于nginx - 在不使用文件扩展名的情况下调用由 nginx 提供的 PHP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62072304/

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