`.htaccess`重定向规则 - 一条规则不起作用,可能发生冲突问题?

时间:2016-01-18 09:42:30

标签: apache .htaccess mod-rewrite redirect

概述

这些是我尝试在.htaccess文件中应用的规则:

  1. foo.co.uk重写为www.foo.co.uk - 正常工作
  2. http://重写为https:// - 正常工作
  3. 重定向访问index.php不存在的目录/文件 - 正常工作
  4. https://www.foo.co.uk/bar重定向至https://www.foo.co.uk/index.php?location=bar - 正常工作
  5. https://www.foo.co.uk/sitemap.xml重定向至https://www.foo.co.uk/sitemap.php - 无法正常工作
  6. 访问https://www.foo.co.uk/sitemap.xml时,我被重定向到根https://www.foo.co.uk/

    的.htaccess

    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而不是重定向到根?

0 个答案:

没有答案