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

rewrite base URL and add a specific word to it using mod_rewrite

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

http://test.aroa.com/mance

我需要在性能之前添加 /xyz/abc/xy/ 并在其之后添加 .html 即使用 mod_rewrite 的重写规则将其更改为低于 URL 一旦它在 AEM(或 apache 网络服务器)中点击调度程序

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

为此我写了下面的重写规则和一些重写条件(这里没有重写条件)

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

它适用于该网站,但通过将 /xyz/abc/xy 添加到其他 URL 也搞乱了一些其他功能

你能给我一些建议吗,我可以使用它来限制 URL 仅对 //test.aroa.com/ URL 重写而不影响任何其他 URL

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

任何人都可以提出一些可以帮助的东西

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

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/.html [P]

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

来避免使用它