php - htaccess 重写 XML 站点地图和用户友好的站点地图

标签 php apache .htaccess mod-rewrite

我有两个脚本:

  • xmlsitemap.php(谷歌 XML 站点地图)
  • sitemap.php(GUI 用户友好站点地图)

我想通过重写规则来实现:

重写为site.com/sitemap.php
site.com/网站 map
site.com/sitemap/

重写为site.com/xmlsitemap.php
site.com/sitemap.xml

这是我试过的。问题是它正在将 sitemap.xml 重写为 sitemap.php (GUI)。

Options +FollowSymlinks
RewriteEngine On

RewriteRule sitemap.xml xmlsitemap.php
RewriteRule sitemap sitemap.php

# also tried using [L] option on both

最佳答案

首先,重新添加[L]标志。其次,如果一个规则取代了另一个,请检查您的重写规则正则表达式以使它们更好地匹配,就像整个请求一样:

RewriteRule ^sitemap\.xml$ xmlsitemap.php [L]
RewriteRule ^sitemap$ sitemap.php [L]

如果规则已经匹配,L 标志将阻止运行其他规则(但仍然可以触发内部重定向,参见 END flag instead of the L flag )。

关于php - htaccess 重写 XML 站点地图和用户友好的站点地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6592810/

相关文章:

javascript - PHP 后的 Javascript 中缺少变量

php - Apache 虚拟主机未按预期工作

linux - ssl 协议(protocol) TLS1.3 是否可以在 apache 2.2 或 2.4 中启用?

Apache 不会加载证书

php - 如何将url参数写入.htaccess

php - 使用 Zend_Auth 保护所有 Controller

php - 通过 PHP 执行 Linux 命令

php - 如何将 10 位数字的字符串格式化为电话号码?

php - 清理文本? "The Beatles"到 "Beatles, The"

php - 带有 Rewrite 的 ErrorDocument 并且仍然获得Referer