这个伪静态规则目前只有apache的,我自己不知道怎么转换,求大神帮忙解决问题。小弟在此非常感谢!
# BEGIN
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /plus/htaccess/html.php [L]
</IfModule>
# END
第1个回答 推荐于2016-06-04
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;“
这样逐条修改就完成了。
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个回答 2015-04-09
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都直接访问不经过重写规则还是禁止访问?本回答被网友采纳
{
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都直接访问不经过重写规则还是禁止访问?本回答被网友采纳