Regex 将旧站点地图重定向到new sitemap.xml
我不小心有三个允许的站点地图URL:Regex 将旧站点地图重定向到new sitemap.xml,regex,apache,.htaccess,mod-rewrite,rewrite,Regex,Apache,.htaccess,Mod Rewrite,Rewrite,我不小心有三个允许的站点地图URL: domain.com/sitemap.php domain.com/sitemap domain.com/sitemap.xml 如何将它们全部重定向到domain.com/sitemap.xml,站点地图文件是sitemap.php 我一直在尝试一些不同的扩展,但它们似乎会导致.xml和.php扩展之间不断循环,它会中断 #Sitemap RewriteRule ^sitemap.xml sitemap.php [L, R=301] RewriteRul
domain.com/sitemap.php
domain.com/sitemap
domain.com/sitemap.xml
如何将它们全部重定向到domain.com/sitemap.xml
,站点地图文件是sitemap.php
我一直在尝试一些不同的扩展,但它们似乎会导致.xml
和.php
扩展之间不断循环,它会中断
#Sitemap
RewriteRule ^sitemap.xml sitemap.php [L, R=301]
RewriteRule ^sitemap$ http://domain.com/sitemap.xml [R=301]
好的,请尝试以下代码:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(sitemap)(/|\.php)?\s [NC]
RewriteRule ^ /%1.xml [R=301,L]
RewriteRule ^(sitemap)\.xml$ /$1.php [L,NC]
好的,请尝试以下代码:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(sitemap)(/|\.php)?\s [NC]
RewriteRule ^ /%1.xml [R=301,L]
RewriteRule ^(sitemap)\.xml$ /$1.php [L,NC]
更新的问题,我的站点地图文件是
sitemap.php
,这提供了一个404?,所以您希望将外部站点地图URL保留为domain.com/sitemap.xml
,但希望从domain.com/sitemap.php
提供服务?似乎工作正常,谢谢,第一行匹配的是什么?第一行实际上从/sitemap
或/sitemap.php
到/sitemap.xml
进行外部重定向,但第二条规则将执行从/sitemap.xml
到/sitemap.php
的无声重写。更新的问题是,我的sitemap文件是sitemap.php
,这提供了一个404?,所以您希望将外部站点地图URL保留为domain.com/sitemap.xml
,但希望从domain.com/sitemap.php
提供服务?似乎工作得很好,谢谢,第一行与什么匹配?第一行实际上从/sitemap
或/sitemap.php
到/sitemap.xml
进行外部重定向,但第二条规则将执行从/sitemap.xml
到/sitemap.php
的无声重写