NGINX重定向改为apache重定向

NGINX重定向改为apache重定向例子

NGINX重定向规则

 代码如下 复制代码
rewrite ^/index.(html|htm)$   /index.$1 last;
rewrite ^/index_(hot|new)(_(\d+))?.html$  /index.php?ac=index&st=$1&page=$3  last;
rewrite ^/index_(\d+).html$  /index.php?ac=index&page=$1 last;
rewrite ^/([a-zA-Z]+)_(new|hot)(_(\d+))?.html$  /index.php?ac=$1&st=$2&tid=$4 last;
rewrite ^/([a-zA-Z]+)_(new|hot)_(\d+)_(\d+).html$  /index.php?ac=$1&st=$2&tid=$3&page=$4 last;
rewrite ^/([a-zA-Z]+)_(\d+)_(\d+).html$  /index.php?ac=$1&tid=$2&page=$3 last;
rewrite ^/([a-zA-Z]+)(_(\d+))?.html$  /index.php?ac=$1&tid=$3 last;

 
改成apache重定向之后
 

 代码如下 复制代码
RewriteEngine On
RewriteRule ^/index.(html|htm)$ http://www.xxx.com/index.$1 [R=301]
RewriteRule ^/index_(hot|new)(_(\d+))?.html$ http://www.xxx.com/index.php?ac=index&st=$1&page=$3 [R=301]
RewriteRule ^/index_(\d+).html$ http://www.xxx.com/index.php?ac=index&page=$1 [R=301]
RewriteRule ^/([a-zA-Z]+)_(new|hot)(_(\d+))?.html$ http://www.xxx.com/index.php?ac=$1&st=$2&tid=$4 [R=301]
RewriteRule ^/([a-zA-Z]+)_(new|hot)_(\d+)_(\d+).html$ http://www.xxx.com/index.php?ac=$1&st=$2&tid=$3&page=$4 [R=301]
RewriteRule ^/([a-zA-Z]+)_(\d+)_(\d+).html$ http://www.xxx.com/index.php?ac=$1&tid=$2&page=$3 [R=301]
RewriteRule ^/([a-zA-Z]+)(_(\d+))?.html$ http://www.xxx.com/index.php?ac=$1&tid=$3 [R=301]

pache转换 nginx可以使用的规则:

 代码如下 复制代码

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;“

时间: 2024-11-08 21:28:55

NGINX重定向改为apache重定向的相关文章

Apache 重定向配置方法

转自: http://www.oschina.net/question/12_2803 今天的support内容需要测试Apache 页面重定向,简单的说就是配置Apache让它自动把旧的URL地址转换成新的URL输出.  首先,apache重定向功能需要调用mod_rewrite模块,由于apache2.2的modules文件夹中带有该模块,所以我们只需开启http.conf文件中的LoadModule rewrite_module modules/mod_rewrite.so(去掉前面的'#

Apache重定向https到http

问题描述 Apache重定向https到http 我现在有一个服务部署在glassfish上,需要用https访问,但glassfish的证书有问题,就想使用Apache的配置将https请求重定向到http,请教大神该怎么配置 解决方案 HTTPS重定向到HTTPapache做http和https反向代理Apache重定向 解决方案二: 证书有问题,重定向前就出错返回了

discuz nginx-disucz x3.2 nginx 如何批量做301重定向

问题描述 disucz x3.2 nginx 如何批量做301重定向 discuz x3.2 我把帖子伪静态为/{id}/1/1/thread.html 原来的伪静态是/thread-{id}-1-1.html 在nginx下我如何把/thread-{id}-1-1.html 全部 做301重定向 到/{id}/1/1/thread.html rewrite ^([^.]*)/([0-9]+)/([0-9]+)/([0-9]+)/thread.html$ $1/forum.php?mod=vie

nginx配置域名后程序重定向的错误

问题描述 nginx配置域名后程序重定向的错误 如题,我现在有一台服务器,安装了nginx,按下如图配置了一个反向代理 配置好之后正常访问都没有问题,但是程序中所有的重定向都有问题,重定向之后都会带上应用的上下文根 比如我一个用户登出的程序正常处理结束后要重定向到首页www.zjbzx.cn/上,但是实际跳到了www.zjbzx.cn/zjb/上,请教各位大牛知道的帮忙解答一下,多谢~ 解决方案 配置重定向配置的不对,自己检查下.

nginx + uwsgi 竟然比 apache + wsgi 还慢

问题描述 nginx + uwsgi 竟然比 apache + wsgi 还慢 实验结构是 相同环境下 100线程 每个一百个查询 nginx + uwsgi 用了58901毫秒 apache + wsgi用了33307毫秒 怎么回事? 请牛人解答 解决方案 查询一下log等,看系统的瓶颈 比如nginx是否开多进程,开多并发,uwsgi是否开多线程,多进程

apache/nginx环境下域名301重定向方法总结

之前张小三资源网也总结过域名301重定向的教程,但是较乱,这次重新编排一下,力求简单高效的在nginx和apache环境下把不带WWW的域名301到带WWW域名上的重定向. nginx域名301重定向有三种方法: 原生法 nginx高版本支持: server {   server_name 111cn.net;   return 301 http://www.111cn.net$request_uri; } 重写法 nginx通用支持: server {     server_name 111c

nginx中nginx防盗链设置和重定向规则

rewrite命令 nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令格式如下: rewrite 正则表达式 替换目标 flag标记 flag标记可以用以下几种格式: last – 基本上都用这个Flag. break – 中止Rewirte,不在继续匹配 redirect – 返回临时重定向的HTTP状态302 permanent

Nginx上配置域名永久重定向

当我们的站点更换域名的时候,需要将所有针对旧域名的请求全部重定向到新域名上.步骤如下: 1.假定我们的旧域名为111cn.net,新域名为www.111cn.net. 2.在Nginx上,为新域名配置一个server.  代码如下 复制代码 server {     listen       80;     server_name  www.111cn.net;     # 其它省略 } 3.在Nginx上,为旧域名配置一个server.  代码如下 复制代码 server {     list

Nginx map 指令实现页面重定向的例子

有时候网站 URL 规则会进行调整,需求的不断变化也会导致一些旧的 URL 无法访问,这个时候可以使用 Nginx 的 map 指令匹配这些旧的 URL,并重定向到新的 URL 规则,而且这种方式是在 Nginx 层面进行,不会对网站性能产生影响. 在 nginx.conf 的 http 域中添加 map 指令规则,这里包含一个 URL 规则映射文件: # 设置301跳转 map $request_uri $new {     include /etc/nginx/redirect.map; }