产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

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

[综合话题] .htaccess 在线 转nginx伪静态

shylocker120
银牌会员
2676.29 价值分

shylocker120 发表于 2013-03-04 21:01:43
给需要的参考。标记下。

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


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

2013-03-04 21:01:43 1

shylocker120
银牌会员
2676.29 价值分

在/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
银牌会员
2676.29 价值分

本帖最后由 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
创始人
12394.33 价值分

引用:
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

AMH官方号 2011~2021 (10周年)

shylocker120
银牌会员
2676.29 价值分

引用:
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
创始人
16530.81 价值分

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


规则怎么写的呢?
  支持 (0分)  反对 (0分)
回复  2013-09-03 13:31:05 7

AMH面板 - 好用高效低占用、安全可靠极稳定

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社区列表
用户服务中心