除了一个特定页面之外,如何使用.htaccess将整个站点重定向到HTTPS?

时间:2015-01-19 21:57:02

标签: apache .htaccess redirect

我正在为新网站使用PHP框架,并且最近实施了SSL。所有请求都使用.htaccess重定向到HTTPS,目前看起来像: -

#secure htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

RewriteEngine On
#Remove index.php being displayed on pages
RewriteCond $1 !^(index\.php|images|attachments|email|css|js|robots\.txt)
RewriteRule ^/?(.*)$ /index.php?/$1 [L]

RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

一切正常但我现在需要允许从HTTP访问我的网站,以便让一些Web访问的cron任务正常工作。我很难找到如何从HTTP访问 mysite.com/cron ,而不是为特定路径重定向。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要yuor重定向规则为之前您的index.php路由规则。第二件事是你可以添加一个条件或正则表达式,以便匹配/ cron:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(?!cron)(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

#Remove index.php being displayed on pages
RewriteCond $1 !^(index\.php|images|attachments|email|css|js|robots\.txt)
RewriteRule ^/?(.*)$ /index.php?/$1 [L]