如何重写 url 以删除 nginx 中的 .php?

如何重写 url 以删除 nginx 中的 .php?

希望重写我的 URL,以便页面不以 /.php 结尾。

例如,我想让 '/about.php' 看起来像 '/about' 或 '/about/'

有人可以分享这个模块吗?如果您有显示此类重写的 nginx.conf 或 virtual.conf 文件示例,我将不胜感激。

显然,我是个新手,但正在尝试通过示例来学习。

答案1

您可以使用try_files指令检查带有.php附加内容的文件。例如:

try_files $uri.php $uri;

如果不存在,它将首先查找/about.php然后处理。/about

答案2

 location /about/ {
  proxy_pass http://backend/about.php;
 }

或者

# this will catch ALL files and rewrite ALL requests
 (like /blabla/file to /blabla/file.php)
# it is not tested , but I guess you will understand this :)

location / {
    rewrite ^/(.+)$ /$1.php break;
    proxy_pass http://backend;
}

或者可能是最简单的方法

location / {
    proxy_path http://backend$uri.php #append .php to all files
}

最后请记住,重写模块很慢..尽量避免它

相关内容