nginx支持.htaccess文件实现rewrite伪静态打赏

在网上查到的资料很多人都说nginx目前不支持.htaccess文件来做伪静态,小子也觉得不应该,作为世界上轻量级最好用的WEB服务器,Nginx应该可以的,谷歌了一下,找到了nginx完全可以支持.htaccess文件的资料,其实linux下的文件是没有扩展名区别的,而针对nginx的伪静态配置文件更是没有名称的区别,只要指定相应路径即可,具体步骤请按如下操作:

1、新建一个.htaccess文件,在里面输入规则,如:

# nginx rewrite rule 
rewrite ^(.*?)/article/.*?-(\d+)-(\d+)\.html$ $1/show.html?id=$2&page=$3 break; 
rewrite ^(.*?)/category/.*?-(\d+)-(\d+)\.html$ $1/list.html?id=$2&page=$3 break; 
rewrite ^(.*?)/tag/([^/]+)/?$ $1/tag.html?w=$2 break;  <span id="more-1758"></span>
rewrite ^(.*?)/tag/([^/]+)/(\d+)$ $1/tag.html?w=$2&page=$3 break; 
# end nginx rewrite rule 

保存文件并上传到网站的根目录。

2、修改虚拟主机配置

# ee /usr/local/etc/nginx/nginx.conf #freebsd 7.2默认nginx默认安装的配置文件
在你需要添加伪静态的虚拟机中的server块中引入.htaccess文件

include /usr/www/.htaccess #请把这个改成你.htaccess文件的位置,
保存、退出重启nginx

# /usr/local/etc/rc.d/nginx restart
刷新看看,如果能正常器从证明你的rewrite rule的语法是正确

nginx的rewrite规则您可以直接放在主机配置中也可以放在独立的文件用includeinru,存为独立的文件时,保存到一个新的文件(文件名可以任意取,不过建议还是用.ht(注意有个“点”)开头的文件名,因为这个服务器里面默认过滤了外部对.ht开头的文件访问:

location ~ /\.ht {
deny all;
}

nginx支持.htaccess文件实现rewrite伪静态
文章《nginx支持.htaccess文件实现rewrite伪静态》二维码
  • 微信打赏
  • 支付宝打赏
  • 我反复看了多遍,好文,得支持

  • 啊强

    其实就是一个路径,apache应该也可以改名称的吧。

    • 这个没去深究过,这么久的文章都翻出来了。

      • 啊强

        怎么还有隐藏内容啊,回复了也不能看,坑啊。。

        • 貌似。。这个以前加的回复可见的插件,现在使用多说的社会化评论了,可能插件判断不出是不是已经评论的用户了。我已经把这个插件停用了,其实也没什么用,因为装这个插件还被一些人骂了一通,无语ing

  • 啊强

    其实就是一个路径,apache应该也可以改名称的吧。

    • 这个没去深究过,这么久的文章都翻出来了。

      • 啊强

        怎么还有隐藏内容啊,回复了也不能看,坑啊。。

        • 貌似。。这个以前加的回复可见的插件,现在使用多说的社会化评论了,可能插件判断不出是不是已经评论的用户了。我已经把这个插件停用了,其实也没什么用,因为装这个插件还被一些人骂了一通,无语ing

  • ok

    quite fuckable

  • fuck u

    • Real brain power on dilaspy. Thanks for that answer!

  • Vic

    不凑,呵呵