我有一个非常简单的.htaccess
文件,我需要将其转换为nginx配置:
RewriteRule ^api$ api.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
我试着开始做:
location / {
rewrite ^(.*)$ /index.php;
}
但每当我加载网页的基本URL时,我的浏览器就会下载index.php文件。我的配置中也有这个:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
但由于某些原因,nginx仍然将其作为下载传递。这里的配置是什么?
答案 0 :(得分:1)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
使用try_files进行的前3次操作不是nginx中的重写(有关该指令的详细信息,请参阅http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files):
location / {
try_files $uri $uri/ $uri/index.php$args;
}
location = /api {
rewrite ^ /api.php$args
}