我有从htaccess文件到nginx配置实现我的重写代码的问题.
我已经尝试过生成器:
http://winginx.com/htaccess用于生成我的重写
码.
我的nginx配置代码:
server {
listen 80;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
root /usr/share/nginx/www;
index index.php;
server_name www.example.com;
error_page 404 http://www.example.com/404.php;
autoindex off;
error_log /usr/share/nginx/www/nginx_error.log warn;
location / {
rewrite ^([^\.]*)$/$1.php;
}
location = / {
rewrite ^ /index.php;
}
location ~ \.php${
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
我想从我的.htaccess中实现这个:
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-/_]+)$admin/index.php?hotelname=$1&do=$2 [QSA]
RewriteRule ^(([A-Za-z0-9-/]+)+)$admin/index.php?hotelname=$1 [L]
从工具生成的代码:
location / {
rewrite ^/([A-Za-z0-9-]+)/([A-Za-z0-9-/_]+)$/admin/index.php?hotelname=$1&do=$2;
rewrite ^/(([A-Za-z0-9-/]+)+)$/admin/index.php?hotelname=$1 break;
}
我已经尝试将最后一行代码实现到我的位置块,但根本不工作..
每一个意见我都会非常致命!
问候
Makromat
最佳答案 盲目的转换将是
rewrite ^([A-Za-z0-9-]+)/([A-Za-z0-9-/_]+)$admin/index.php?hotelname=$1&do=$2&$query_string last;
rewrite ^(([A-Za-z0-9-/]+)+)$admin/index.php?hotelname=$1 last;
但我更愿意,如果我更多地理解这个问题,可以产生更优化的重写.
我什么时候知道URL是否应该传递给/ admin,给我一个后端和前端的实际URI.