Apache的力量,如果url具有特定的模式redirect到https

如果URI以“admin-”模式启动,或者包含“admin / user / login”redirect到同一个uri的https,我该如何强制Apache

例如:

如果URI是:

 http://examplesite.com/admin-2dns24dw 

redirect到:

 https://examplesite.com/admin-2dns24dw 

如果URI是:

 http://examplesite.com/en/admin/user/login/msg 

redirect到:

 https://examplesite.com/en/admin/user/login/msg 

如果任何没有任何这种模式的https URI应该redirect到同一个URL http。

例如:

如果URI是:

 https://examplesite.com/fa/dashboard 

redirect到:

 http://examplesite.com/fa/dashboard 

**更新**

我试过了:

  RewriteCond %{HTTPS} !=on RewriteCond %{THE_REQUEST} admin-|admin/users/login [NC] RewriteRule ^(my) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 

但它没有奏效。

有什么问题?

使用mod_rewrite这非常简单:

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(foo|bar)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

这将通过HTTPS将任何与RewriteRule中的模式匹配的URL RewriteRule为相同的URL。

您可以尝试mod_alias – Apache HTTP Serverredirect指令。

 Example: Redirect /service http://foo2.example.com/service 

*更新*

 Redirect /admin-2dns24dw https://examplesite.com/fa/dashboard