【问题标题】:Rewrite AEM index.html重写 AEM index.html
【发布时间】:2018-02-06 10:21:02
【问题描述】:

apache 2.4 中存在重写问题 我正在尝试执行以下步骤但失败了。

我希望结果为 -

如果我在 apache(dispatcher) 中点击 url/index.html,它应该重定向并映射到 AEM 发布者的 /content/company/en_US/index.html,但它不应该显示长 URL。同时,所有长网址都应按秒规则缩短。由于这个冲突,如果我点击 url,它将进行无限循环重定向。

另外请注意,如果 AEM 发布者找到 /index.html,它将重定向到 /content.html,即根映射。所以我需要屏蔽 /index.html 并将其映射到长 url 而不显示长 url。

  • 规则 1:#rewrite "/index.html" 主页

    RewriteCond %{REQUEST_URI} ^/index.html$
    RewriteRule ^/index.html$ /content/company/en_US/index.html [PT,L]
    
  • 规则 2: #缩短所有长网址

    RewriteRule ^/content/company/en_US/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
    

请提供您的意见。

【问题讨论】:

  • 在请求时能否提供部分重写日志?这可能会对这个问题有所了解。
  • 尝试使用redirect_status来避免循环。

标签: mod-rewrite aem dispatcher apache2.4 url-mapping


【解决方案1】:
RewriteEngine On
RewriteRule ^/index.html /content/company/en_US/index.html [PT,L]
RewriteCond %{REQUEST_URI} !^/apps
RewriteCond %{REQUEST_URI} !^/bin
RewriteCond %{REQUEST_URI} !^/content
RewriteCond %{REQUEST_URI} !^/etc
RewriteCond %{REQUEST_URI} !^/home
RewriteCond %{REQUEST_URI} !^/libs
RewriteCond %{REQUEST_URI} !^/tmp
RewriteCond %{REQUEST_URI} !^/var
RewriteRule ^/(.*)$  //content/company/en_US/$1 [PT,L]

尝试这样它会起作用,请分享您的 etc 地图节点结构。

【讨论】:

  • 虽然您的代码 sn-p 可能会解决问题,但您应该描述您的代码的目的是什么(它如何解决问题)。此外,您可能需要检查stackoverflow.com/help/how-to-answer
猜你喜欢
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多