求将apache的伪静态规则转换成nginx

2024-11-11 05:50:41
推荐回答(2个)
回答1:

  RewriteEngine On
  RewriteRule ^/([a-z]+)/p_([0-9]+)\.html$ /list\.php\?id=$1
  以上为apache的伪静态规则。下面为转换后的nginx规则:
  rewrite ^/([a-z]+)/p_([0-9]+)\.html$ /list.php?id=$1 last;
  注意:apache后则不能直接使用点和问号,所以将/list\.php\?id=$1中的"\"去掉,即:/list.php?id=$1
  然后,将RewriteRule 换为 rewrite,并在在每条规则后加上”last;“
  这样逐条修改就完成了。

回答2:

location /
{
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?$1 last;
}
}

阁下的代码意在将路径中的index.php隐藏,同时还得保证像图像CSS等文件不被规则所限制,那么可参考我写的这个:

1

if (!-e $request_filename)//此句是指当访问的是URL不是一个切实存在的文件时,则执行下面的重写规则。

至少阁下还有一句:

1

RewriteCond %{REQUEST_URI} ^system.*

它的作用是什么?是要将system开头的URL都直接访问不经过重写规则还是禁止访问?