我正在尝试做一些非常简单的事情,但它正在踢我的屁股哈哈。我有我的网站,今天早上我获得了SSL证书。我希望我的用户被重定向到安全站点,但我只需要我的网站的某个部分的证书,所以我不想担心其他地方。证书是domain.com
而不是www.domain.com
。我网站上需要证书的部分,所有页面都在apps
目录中。例如domain.com/apps/login.php
。这是我在.htaccess文件中添加的内容。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/apps/.*$
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://domain\.com%{REQUEST_URI} [R=301,L]
现在我将解释我认为应该做什么,我想告诉我哪里错了哈哈。
RewriteEngin On
- 允许重定向RewriteCond %{REQUEST_URI} ^/apps/.*$
- 检查用户是否在apps目录中RewriteCond %{HTTPS} !=on
- 检查用户是否已在使用https:// RewriteRule ^(.*)$ https://domain\.com%{REQUEST_URI} [R=301,L]
- 重定向这部分有效。当我输入www.domain.com/apps/login.php
时,它会重定向到https://domain.com/apps/login.php
。完善。但如果我只输入www.domain.com
,则会重定向到https://domain.com
。所以似乎我的第RewriteCond %{REQUEST_URI} ^/apps/.*$
行被打破了。我需要做些什么来使它只在它们位于apps
目录时重定向到安全站点?
答案 0 :(得分:1)
你的规则在我看来它应该有效,但无论如何你都不需要进行RewriteCond %{REQUEST_URI}
测试。只需在^apps
:
RewriteRule
即可
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^apps/(.*)$ https://domain.com/apps/$1 [R=301,L,NC]