使用通配符网址重定向到https(htaccess)

时间:2013-10-16 14:36:51

标签: apache .htaccess mod-rewrite redirect

我有以下问题。我有一个网站,其中一些页面必须重定向到https安全的等效链接。

我尝试了几件事,但最后似乎服务器最终在循环重定向:(

现在我将每个页面重定向到https页面,但这不是我想要的。

这是我现在使用的代码:

RewriteCond %{http_host} ^www.domain.nl
RewriteCond %{SERVER_PORT}  !^443$
RewriteRule ^(.*)$ https://www.domain.nl/$1 [L,R=301]

我希望自己的网站以https开头。

的示例:

http://www.domain.nl/bo-users -> redirects to https://www.domain.nl/bo-users
http://www.domain.nl/bo-groups -> redirects to https://www.domain.nl/bo-groups

http://www.domain.nl/about-us -> stays at http://www.domain.nl/about-us

我很清楚,在重写条件下我需要一些通配符,所有网址都以bo-开头。 我们在服务器上使用apache。 希望有人能把我送到正确的方向。

谢谢,


Anubhava提示后更新。

我当前;你有这个htaccess但我无法让它工作(即使在我的浏览器中清除缓存)

Options +FollowSymlinks
RewriteEngine On
RewriteBase /


RewriteCond %{HTTP_HOST} ^www.domain\.nl$ [NC]
RewriteCond %{HTTPS} on
RewriteRule !^bo- http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC,NE]

RewriteCond %{HTTP_HOST} ^www.domain\.nl$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^bo- https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC,NE]


#rewrites een url to www. 
RewriteCond %{HTTP_HOST}  ^[a-z0-9-]+\.[a-z]{2,6}$ [NC]
RewriteRule ^(.*)$        http://www.%{HTTP_HOST}/$0 [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

希望得到一些额外的帮助! 谢谢, 弗兰克

我打开了另一个电话。最初的答案很好!

1 个答案:

答案 0 :(得分:0)

使用此规则:

# force HTTPS for bo- URIs
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.nl$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^bo- https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC,NE]

# force HTTP for non bo- URIs
RewriteCond %{HTTP_HOST} ^www.domain\.nl$ [NC]
RewriteCond %{HTTPS} on
RewriteRule !^bo- http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC,NE]