在某些目录上强制使用HTTPS,并使用.htaccess强制所有其他目录上的HTTP

时间:2014-04-19 20:04:39

标签: php regex .htaccess https

我已在此处找到了此问题的潜在解决方案:Force HTTPS on certain URLs and force HTTP for all others但这并未按预期重定向用户。

我试图让所有加载http://mydomain.com/registration/或其子目录中的任何文件的人都被定向到https://mydomain.com/registration/(有或没有www。,我不在乎)但是对于所有不在其中的文件该目录被强制使用HTTP。

通过简单地将'my'替换为'registration'来调整上述解决方案,对于非/注册/ URL以及用户在重定向循环中结束的任何/ registration / URL没有任何变化。

我认为这可能与我的.htaccess文件中已有的内容有关。我需要新代码和现有代码同时工作,这就是我真正需要帮助的地方:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^runners/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)$ index.php?p=runners&sortby=$1&dir=$2&page=$3&perpage=$4 [L]
RewriteRule ^([a-z0-9\-]+)$ index.php?p=$1 [L]
</IfModule>

1 个答案:

答案 0 :(得分:-1)

试试这个:

RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} ^/registration [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,QSA,L]

这应粘贴在RewriteBase /行的正下方。