apache 2.2.22 mod_rewrite RewriteCond,如何设置正则表达式

时间:2013-04-23 14:18:56

标签: apache mod-rewrite

对不起,我最初的描述很简短。

我需要做的是,在一个具有两个不同条件的base-url上进行两次重定向。 首先是使用base-url(如_http://some_url.org)将请求重定向到_http://some_other_url.org。

_http://some_url.org -> _http://some_other_url.org

第二个是,如果请求_http://some_url.org/some_subdir,它应该被重定向到同一主机的SSL _https://some_url.org/some_subdir。
因此,在案例2中,不应将其重定向到some_other_url.org。

_http://some_url.org/some_subdir -> https_://some_url.org/some_subdir

两个重写本身并不复杂,但我不能让它们一起工作 所以我的问题是,我如何设置RewriteCond(准确地说是regexp)来进行匹配。 http-> https总是否决。

我用RewriteCond,RewriteRule,RedirectMatch进行了几次实验,但我没有得到它。有人有想法吗?

哦,顺便说一句,这应该由vhost-config完成,而不是文件夹中的.htaccess文件。这是一个我不负责的限制:-(因为开发人员有时会清空文件夹。

抱歉,由于此编辑器无法识别此“网址”,因此我必须执行此操作_http 非常感谢

最好的问候,M。

1 个答案:

答案 0 :(得分:0)

我得到了答案,感谢来自google-groups的Jim

 RewriteRule ^/$        http://some_other_url.org [R=permanent,L,NS]    

 RewriteCond %{HTTPS} !=on [NC]  
 RewriteRule ^/(.*) https://some_url.org/$1 [R=permanent,L,NS]

PERFECT!非常感谢吉姆。 这完全解决了我的问题。

最好的问候,M。