我花了最后一个半小时试图让以下重写规则在Nginx中正常工作,但我所做的一切都无法正常工作!它总是以无限重定向循环或404结束。
最初的.htaccess是这样的:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(js|ico|txt|gif|jpg|png|css|php)
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule ^(.*)$ index.php/$1/
AcceptPathInfo On
我已经设置了正确的FastCGI路径信息拆分参数(fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
),但我无法让重定向规则/ try_files规则正常工作!
答案 0 :(得分:0)
看起来你需要经典的index.php处理程序,但这只是config的一部分,也许你需要更多的配置:
server {
...
location /
{
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?$1 last;
}
}
location ~* \.(js|ico|txt|gif|jpg|png|css)$ {
expires 31d;
access_log off;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass backend;
}
...
}