【问题标题】:Two XML sitemaps for one page rewrited in .htaccess一页的两个 XML 站点地图在 .htaccess 中重写
【发布时间】:2016-04-22 06:08:02
【问题描述】:

我为同一个页面创建了两个站点地图文件:

  • sitemap_en.xml
  • sitemap_sk.xml

同一页面在两个域上工作。

  • domain1 - 用于 sk 语言
  • domain2 - 用于英语

我需要在 .htaccess 中创建以下重写规则:

  • 如果 domain1.sk/sitemap.xml 返回 sitemap_sk.xml
  • 如果 domain2.com/sitemap.xml 返回 sitemap_en.xml

【问题讨论】:

    标签: php xml apache .htaccess mod-rewrite


    【解决方案1】:

    您可以在 htaccess 中使用以下条件规则:

    RewriteEngine on
    
    ##1)if host=="www.domain1.sk##
    RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.sk$
    ##rewrite "/sitemap.xml" to "/sitemap_sk.xml"##
    RewriteRule ^/?sitemap\.xml$ /sitemap_sk.xml [NC,L]
    ##2)if host=="www.domain2.com##
    RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com$
    ##rewrite "/sitemap.xml" to "/sitemap_en.xml"##
    RewriteRule ^/?sitemap\.xml$ /sitemap_en.xml [NC,L]
    
    • 如果主机值为 www.domain1.sk,第一条规则会将 /sitemap.xml 重写为 /sitemap_sk.xml > 或 domain1.sk .

    • 如果主机值为 www.domain.comdomain.com

    【讨论】:

    • ...是否可以禁用对原始站点地图的直接访问? domain.com/sitemap_en.xml ??
    • @Steelbull 是的,这是可能的,您可以在其他规则之上使用此规则,将其添加到“RewriteEngine on”行下方RewriteCond %{THE_REQUEST} /sitemap_en\.xml [NC] RewriteRule ^ - [F,L] 如果 /sitemap_en.xml 这将返回 403 禁止错误 直接访问
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多