重写基本URL并使用mod_rewrite向其添加特定单词

时间:2016-02-25 21:48:45

标签: mod-rewrite url-rewriting rewrite

以下是我的要求: 假设我有一个来自浏览器的URL

http://test.aroa.com/mance

我需要在性能和.html之后添加/ xyz / abc / xy /,即使用mod_rewrite的重写规则将其更改为下面的URL,一旦它到达AEM(或apache web-server)中的调度程序< / p>

http://test.aroa.com/xyz/abc/xy/mance.html

为此我写了下面的重写规则以及一些重写条件(重写条件不在这里)

RewriteRule ^(/.*)$ /xyz/abc/xy$1.html [P,L]

它适用于此站点,但通过将/ xyz / abc / xy添加到其他URL也会混淆其他功能

您能否建议我使用哪种方法来限制仅针对//test.aroa.com/网址的网址重写,而不会影响任何其他网址

我尝试将规则放在目录标记中,并在其中包含doc-root名称。但在那种情况下它无法应用..

任何人都可以建议可以提供帮助的内容

1 个答案:

答案 0 :(得分:2)

如果要在特定域上应用规则,可以添加此条件

RewriteCond %{HTTP_HOST} ^test\.aroa\.com$ [NC]

此外,还有一个小的语义细节:您不需要L标记P标记(这是多余的,因为P包含L

最后,您的代码应如下所示

RewriteCond %{HTTP_HOST} ^test\.aroa\.com$ [NC]
# your other conditions
RewriteRule ^/?(.+)$ /xyz/abc/xy/$1.html [P]

备注:我认为您不需要使用mod_proxyP标志),尤其是因为它比简单的内部重写慢。如果您的(子)域共享相同的文档根,那么您可以通过将P标记替换为L标记来避免使用它