我有以下 htaccess 规则:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
我使用了在线转换器,它给了我这个结果,但是它不起作用,所以我真的不确定它出了什么问题。
location / {
rewrite ^/(.*)/$ /$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}
提前致谢
答案1
在 nginx 中,您不需要将其用作rewrite
前端控制器,而是使用try_files
。您的配置看起来应该像这样:
server {
...
try_files $uri $uri/ /index.php;
location ~ (.+)/$ {
return 301 $scheme://$host$1;
}
}