AMH开源社区

AMH社区 - 开放自由有价值的社区

[分享帖] .htaccess 在线 转nginx伪静态

shylocker120
银牌会员
2673.92 价值分

42,928 次阅读   19 张回复   shylocker120 发表于 2013-03-04 21:01:43
给需要的参考。标记下。

一个在线将 Apache Rewrite 伪静态规则转换为 Nginx Rewrite 工具。大家可以试试看。
地址:http://www.anilcetin.com/convert-apache-htaccess-to-nginx/


之后需要修改配置文件,加入
location / {
此处放自动转换后的nginx伪静态规则
}

评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (27分)
2013-03-04 21:01:43 1

shylocker120
银牌会员
2673.92 价值分

在/usr/local/nginx/conf/rewrite下面新建一个规则文件test.conf
index.html 重写到 index.php可以这么写。
rewrite重写规则:
location / {
rewrite "^(.*)/index\.html$" $1/index.php last;
}

面板编辑主机选择Rewrite规则:test.conf

就可以了。
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-03-04 21:04:29 2

shylocker120
银牌会员
2673.92 价值分

本帖最后由 shylocker120 于 2013-3-4 21:10 编辑

在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件,我按照nginx的规则试验了一下,结果发现nginx是完全支持.htaccess文件的!

方法如下:


1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件,
如本人的一个Discuz论坛目录:

vim /var/www/html/168pc/bbs/.htaccess

2. 在里面输入规则,我这里输入Discuz的伪静态规则:

# nginx rewrite rule
rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;
# end nginx rewrite rule

wq保存退出。

3. 修改nginx配置文件:

vim /etc/nginx/nginx.conf

4. 在需要添加伪静态的虚拟主机的server{}中引入.htaccess文件,如图所示:

http://www.ha97.com/wp-content/uploads/2010/06/htaccess.jpg
include /var/www/html/168pc/bbs/.htaccess;(把这个改成你.htaccess文件的具体位置)

wq保存退出。

5. 重新加载nginx配置文件:

/etc/init.d/nginx reload

重新打开网页看看,如果伪静态正常就证明你的rewrite rule语法是正确的。

正常,完毕!

评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-03-04 21:09:12 3

admin
创始人
31518.99 价值分

引用:
shylocker120 发表于 2013-3-4 21:09
在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件,我按照nginx的规则试验了一下,结果发现ngi ...


这个不是真正支持.htaccess的拉,
只是用了名字是.htaccess,跟用conf没什么区别。
: )

apache .htaccess只放目录下使用了、更改也是直接就生效的。
nginx需要重载的,考虑到性能问题。


评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-03-04 22:19:44 4

shylocker120
银牌会员
2673.92 价值分

引用:
admin 发表于 2013-3-4 22:19
这个不是真正支持.htaccess的拉,
只是用了名字是.htaccess,跟用conf没什么区别。
: )


:lol是的。。给非要用。htaccess的人准备的。。
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-03-05 15:28:52 5

nerve
银牌会员
1442.00 价值分

301转换过去不管用
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-09-03 01:35:24 6

amysql
创始人
97605.04 价值分

引用:
nerve 发表于 2013-9-3 01:35
301转换过去不管用


规则怎么写的呢?
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-09-03 13:31:05 7

i868
铜牌会员
765.00 价值分

能帮我做一个shopex的规则吗?
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-02-21 17:44:13 8

CodeByMe
银牌会员
1410.00 价值分

引用:
i868 发表于 2014-2-21 17:44
能帮我做一个shopex的规则吗?


location / {
if (!-e $request_filename) {
rewrite ^/(.+\.(html|xml|json|htm|php|jsp|asp|shtml))$ /index.php?$1 last;
}}
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-02-21 18:19:28 9

gcczm
铁牌会员
22.00 价值分

学习,记号备用
评价: 这篇分享有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-02-26 14:03:14 10
 1 2 >  (总2页)
AMH社区列表
旅客不可参与帖子, 请您先登录
用户服务中心