重写规则 nginx 以使用 wordpress 添加尾部斜杠并排除带有扩展名的文件

重写规则 nginx 以使用 wordpress 添加尾部斜杠并排除带有扩展名的文件

我有一个安装有 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;

相关内容