我正在尝试将 apache .htaccess 规则转换为 nginx 配置。浏览器请求的 URL 如下所示:
thedomain.com/user/login
thedomain.com/rates/create
- ETC
需要重写这些 URL,以便:
- 运行的 PHP 文件是:
thedomain.com/index.php
- URI 被转换为相应的
QUERY_STRING
:?url=user/login
?url=rates/create
因此在 Apache 中,这个请求thedomain.com/user/login
将在内部重写为如下所示:
thedomain.com/index.php?url=user/login
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
我目前的 nginx 配置是
server {
listen 80;
server_name thedomain.com;
root /home/admin/thedomain.com/public;
index index.php;
location / {
try_files $uri /index.php?url=$uri;
}
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
不幸的是,Nginx 无法以该配置启动,因此我无法运行 nginx 来生成任何有用的日志/调试信息。
我需要做什么才能使此配置正常工作?