我有一个安装有 wordpress 的程序,在 nginx 上使用 php-fpm 运行。我想将所有不带斜杠 / 的 uri 重定向到带有 / 的相同 uri,并且我想排除所有带扩展名的文件。
我的虚拟主机上有这段代码,但是当我指向 www.myhost.com/readme.html 时,如果文件存在,nginx 会添加一个尾部斜杠并返回错误,其他文件扩展名也会出现同样的情况。
if ($request_uri !~ "^/wp-admin")
{
rewrite ^([^.]*[^/])$ $1/ permanent;
rewrite ^([^.]*)$ /index.php;
我在 nginx 之前使用的代码,在 htaccess 上使用 apache 是这样的。
#Add a trailing slash
RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
答案1
你的第一个正则表达式中的 的目的是什么[^.]*
?我认为它应该看起来更像这样:
rewrite ^(.*[^/])$ $1/ permanent;