从 Apache https 重定向中排除单个文件

从 Apache https 重定向中排除单个文件

我有重定向规则http配置文件文件将所有 HTTP 请求重定向到 HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这种方法效果很好,但我想排除robots.txt 被重定向到 https (所以应该http://www.mysite.com/robots.txt 这主要是因为谷歌拒绝通过 ssl 抓取我的 robots.txt (?)

我尝试了几种不同的方法,但到目前为止,它要么 404 文件,要么忽略它并转到https://www.mysite.com/robots.txt(与网站其他部分一样)

我尝试了以下方法:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^robots.txt
RewriteRule (.*)$ https://%{HTTP_HOST}/$1 [NC,R=301,L]

任何关于此事的建议都将不胜感激。

答案1

当然。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/robots\.txt$ - [L]
# or if this is in an htaccess or <Directory>:
# RewriteRule ^robots\.txt$ - [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

相关内容