以下是我的要求: 假设我有一个来自浏览器的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名称。但在那种情况下它无法应用..
任何人都可以建议可以提供帮助的内容
答案 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_proxy
(P
标志),尤其是因为它比简单的内部重写慢。如果您的(子)域共享相同的文档根,那么您可以通过将P
标记替换为L
标记来避免使用它