如何解决在NGINX conf中从外部重定向URL以添加斜杠并使用php文件
我是本网站的新手,并且是NGINX的新手,所以请保持友好。我最近改用AWS Elasticbeanstalk,并且需要有关NGINX配置的帮助。我想做一些我知道并测试过的重定向,该重定向可以在.htaccess的apache2中使用,但是我无法使用NGINX完成。
我希望所有URL都以斜杠结尾,如果$ uri是目录,请使用index.php,如果不使用姓氏作为脚本名称,请使用以下代码:
我希望该URL:使用以下脚本:
https:// localhost /-> ./index.php
https:// localhost / page /-> ./page.php
https:// localhost / folder / page /-> ./folder/page.php
https:// localhost / folder / page /?param = foo-> ./folder/page.php?param=foo
我通过.htaccess中的此配置使其在apache2中表现得像这样:
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]
# add a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
如何将.htaccess转换为NGINX配置文件?
谢谢。
解决方法
尝试使用此功能,请记住在插入后重新启动:
location / {
try_files $uri $uri.html $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。