likeislike 发表于 2013-07-15 17:15

求助:apache地址重写转换成nginx地址重写问题!

我原来用的是apache,听说nginx的抗并发能力比较强,故改换成了nginx,但是改完后发现二级页面和子页面打开都出现404 Not Found错误。询问得知,这是因为apache的rewrite规则和nginx的不一样。我是第一次用nginx,完全不懂nginx下的rewrite怎么写,特把我在apache下的.htaccess粘贴如下,希望有高手能帮我改为nginx的,谢谢!!!


DirectoryIndex index.html index.htm index.php index.php5

Options -Indexes
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
order deny,allow

RewriteEngine on
#RewriteCond %{HTTP_REFERER} !^$
#RewriteRule .*\.(gif|jpg|js)$ /error.html
#RewriteCond %{QUERY_STRING}^wd=(.+)$

RewriteRule ^/proxy/(.*)$ http://$1

RewriteBase /

RewriteRule ^error.html$ error.php
RewriteRule ^notice.html$ notice.php
RewriteRule ^nopost.html$ nopost.php
RewriteRule ^noconsult_([\d]+).html$ noconsult.php?lawyerid=$1
RewriteRule ^index.html$ index.php
RewriteRule ^top_().html$ top.php?type=$1
RewriteRule ^top_()_([\d]+).html$ top.php?pageIndex=$2&type=$1
RewriteRule ^area/(+).html$ arealists.php?areaName=$1
RewriteRule ^area/(+)_().html$ arealists.php?areaName=$1&type=$2
RewriteRule ^area/(+)_()_(+).html$ arealists.php?areaName=$1&type=$2&pageIndex=$3


RewriteRule ^sort/(+).html$ catelists.php?sortName=$1
RewriteRule ^sort/(+)_().html$ catelists.php?sortName=$1&type=$2
RewriteRule ^sort/(+)_()_(+).html$ catelists.php?sortName=$1&type=$2&pageIndex=$3
RewriteRule ^sort/(+)/(+).html$ catelists.php?sortName=$1&className=$2
RewriteRule ^sort/(+)/(+)_().html$ catelists.php?sortName=$1&className=$2&type=$3
RewriteRule ^sort/(+)/(+)_()_(+).html$ catelists.php?sortName=$1&className=$2&type=$3&pageIndex=$4

RewriteRule ^post/public.html$ postconsultopen.php
RewriteRule ^post/public_(+).html$ postconsultopen.php?title=$1
RewriteRule ^post/oneto_([\d]+).html$ postconsultone.php?lawyerid=$1
RewriteRule ^ask/([\d]+).html$ consultview.php?consultId=$1
RewriteRule ^ask/([\d]+)_([\d]+).html$ consultview.php?consultId=$1&pageIndex=$2
RewriteRule ^search/wd=(.*?)$ search.php?keyword=$1
RewriteRule ^search/wd([\d]+)=(.*?)$ search.php?keyword=$2&pageIndex=$1
RewriteRule ^msg/p_(.*?).html$ msggoodopen.php?cid=$1
RewriteRule ^msg/o_(.*?).html$ msggoodone.php?cid=$1

RewriteRule ^user/([\d]+).html$ userinfo.php?userId=$1
RewriteRule ^affiche/([\d]+).html$ affiche.php?afficheId=$1

#######cooper#######
RewriteRule ^zt/20090820dasai/index.html$ cooper/china/zt_20090820dasai.html
RewriteRule ^lstds.html$ cooper/china/lsq/index.php
RewriteRule ^listlogs.html$ cooper/china/lsq/index.php?action=listlogs
RewriteRule ^listlogs_(+).html$ cooper/china/lsq/index.php?action=listlogs&page=$1
RewriteRule ^listlogs_order_().html$ cooper/china/lsq/index.php?action=listlogs&order=$1
RewriteRule ^listlogs_order_()_(+).html$ cooper/china/lsq/index.php?action=listlogs&order=$1&page=$2
RewriteRule ^listlogs_types_().html$ cooper/china/lsq/index.php?action=listlogs&types=$1
RewriteRule ^listlogs_types_()_(+).html$ cooper/china/lsq/index.php?action=listlogs&types=$1&page=$2
RewriteRule ^listlogs_types_()_().html$ cooper/china/lsq/index.php?action=listlogs&types=$1&td=$2
RewriteRule ^listlogs_types_()_()_(+).html$ cooper/china/lsq/index.php?action=listlogs&types=$1&td=$2&page=$3

RewriteRule ^index_consult.html$ cooper/china/index_china.php?action=consult
RewriteRule ^index_article.html$ cooper/china/index_china.php?action=article
RewriteRule ^index_search.html$ cooper/china/index_china.php?action=consult_search

likeislike 发表于 2013-07-16 08:29

有人给点指点吗?????????

chenyx 发表于 2013-07-16 09:18

你去wiki.nginx.org看看rewrite的文档,应该有例子的,尝试下

likeislike 发表于 2013-07-16 09:23

谢谢chenyx!!!:wink:

alexpdl 发表于 2013-07-19 12:55

fikker 反向代理服务器的转向管理功能可以完成楼主的需求的,全界面化的配置管理,无需编译,安装使用超简单,支持linux版本和windows版本,可以下载安装试用下,

1、转向管理特性说明:

转向管理能够做什么?
a、重定向(Redirect),利用 HTTP 协议 302 状态,将浏览器当前访问地址重定向到其它访问地址。
b、伪静态(Rewrite),将用户访问的静态地址(html/htm)转换成源站能够处理的动态地址(php/aspx/jsp等)。 注:属于高级应用。
c、Ajax 跨域,将 Ajax 跨域请求交给 Fikker 代理完成。注:属于高级应用。

Fikker网站缓存是一款面向 IDC/CDN/站长 的 专业级 网站缓存(WebCache)和 反向代理服务器软件(Reversed Proxy Server)。
页: [1]
查看完整版本: 求助:apache地址重写转换成nginx地址重写问题!