【发布时间】:2011-12-14 22:29:32
【问题描述】:
场景:我在同一个 IP/机器上引导多个域,并交付依赖于请求/源域的内容。我没有使用基于名称的 v-hosts,因为我需要保持代码库的整合,以及其他杂项原因。我还需要为这些站点生成站点地图,并分别维护它们。我的困境是我正在尝试使用 htaccess 将所有 *sitemap.xml 和 *site_index.xml 请求重定向到其中包含请求域名的子文件夹,例如:
http://somedomain.com/sitemap.xml需要指向/var/www/html/sites/somedomain.com/sitemap.xml的本地目录
或http://someotherdomain.com/sitemap.xml需要检索/var/www/html/sites/someotherdomain.com/sitemap.xml
这也必须在不更改地址栏中的地址或重定向搜索机器人等的情况下发生。
我已经研究过将所有 *sitemap.xml 请求定向到一个脚本以检索和提供所需的数据,但这似乎很麻烦,而且不像 htaccess 指令那样优雅。到目前为止,我已经制作了:
RewriteCond $1 !=网站 RewriteRule ^([^/]+)/sitemap.xml$ sites/%{HTTP_HOST}/sitemap.xml [L]
这不会导致错误,也不会产生预期的效果。有什么建议吗?
更新:我能够使用 Jacek 提供的指令,并对其进行一些修改以实现我所追求的。这就是我最终得到的结果:
RewriteRule ^sitemap.xml$ sites/%{HTTP_HOST}/sitemap.xml [L]
【问题讨论】:
-
谢谢克里斯,发到那里去。
标签: apache .htaccess mod-rewrite