V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
muziyue
V2EX  ›  程序员

apache 可以按条件实现跳转与重写吗?

  •  
  •   muziyue ·
    Mooooooon · 2014-08-25 17:16:43 +08:00 · 2469 次点击
    这是一个创建于 3738 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果符合是重写规则的连接,直接访问
    如果不符合重写规则,跳转到另一个网站

    比如访问 a.com/index/a/xxx 是 a.com/index.php?a=xxx
    访问 a.com/news.php 就跳转到 b.com/news.php
    10 条回复    2014-08-26 11:35:07 +08:00
    niko
        1
    niko  
       2014-08-26 09:22:20 +08:00   ❤️ 1
    完全可以。

    RewriteRule ^/index/a/(.*)$ /index.php?a=$1 [PT]
    RewriteRule ^news.php$ http://b.com/news.php [NC,NE,R=301,L]
    muziyue
        2
    muziyue  
    OP
       2014-08-26 09:38:40 +08:00
    @niko 额,这个news不是固定的,可能是其他任何文件
    seki
        3
    seki  
       2014-08-26 10:12:31 +08:00
    @muziyue 你问可不可以,我说那肯定可以,关键词是 RewriteEngine。楼上是按照你给的例子给出的代码,有需要可以去了解一下正则表达式
    muziyue
        4
    muziyue  
    OP
       2014-08-26 11:09:48 +08:00
    @seki 问题是设置了通配之后所有的都跳转了
    不加的话前面的几条重写规则是生效的,加了就一起跳转了
    seki
        5
    seki  
       2014-08-26 11:12:21 +08:00
    @muziyue 不是很理解你描述的情况……
    muziyue
        6
    muziyue  
    OP
       2014-08-26 11:15:50 +08:00
    @seki 我有几个页面只想重写 不想跳转 所以需求是『除了这几个页面重写了url,剩下的都301到另一个域名』
    muziyue
        7
    muziyue  
    OP
       2014-08-26 11:17:54 +08:00
    @seki 现在是做了301之后,所有的页面都301了,我不知道怎么排除那几个页面
    seki
        8
    seki  
       2014-08-26 11:28:32 +08:00
    @muziyue 哦,不好意思之前误解了。这种情况可以用 RewriteCond

    RewrtiteCond %{REQUEST_URI} !^/index/
    RewriteRule ^(.*)$ http://b.com/$1 [NC,NE,R=301,L]

    RewrtiteCond %{REQUEST_URI} ^/index/
    RewriteRule ^/index/a/(.*)$ /index.php?a=$1 [PT]
    seki
        9
    seki  
       2014-08-26 11:29:29 +08:00
    @muziyue 代码是现撸的,没验证,希望没错 = =
    muziyue
        10
    muziyue  
    OP
       2014-08-26 11:35:07 +08:00
    @seki 应该就是这个,tks
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5649 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 03:38 · PVG 11:38 · LAX 19:38 · JFK 22:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.