这些是我尝试在.htaccess
文件中应用的规则:
foo.co.uk
重写为www.foo.co.uk
- 正常工作 http://
重写为https://
- 正常工作 index.php
不存在的目录/文件 - 正常工作 https://www.foo.co.uk/bar
重定向至https://www.foo.co.uk/index.php?location=bar
- 正常工作 https://www.foo.co.uk/sitemap.xml
重定向至https://www.foo.co.uk/sitemap.php
- 无法正常工作 访问https://www.foo.co.uk/sitemap.xml
时,我被重定向到根https://www.foo.co.uk/
。
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^foo.co.uk [NC]
RewriteRule ^(.*)$ https://www.foo.co.uk/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/?$ index.php?location=$1 [L,QSA]
#Redirect XML to PHP Sitemap
RewriteRule ^sitemap\.xml$ sitemap.php [L]
文件/sitemap.php
存在,并且在直接访问时,会准确显示我期待的内容,但访问/sitemap.xml
会重定向到主页。
如何将/sitemap.xml
重定向到/sitemap.php
而不是重定向到根?