如果 URL 具有特定模式,则 apache 强制重定向到 https

如果 URL 具有特定模式,则 apache 强制重定向到 https

Apache如果以“admin-”模式开头或包含“admin/user/login” ,我该如何强制URI重定向到相同 uri 的 https。

例如:

如果 URI 是:

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

重定向至:

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

如果 URI 是:

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

重定向至:

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

如果任何 httpsURI没有任何这些模式,则应重定向到相同的 http URL

例如:

如果 URI 是:

https://examplesite.com/fa/dashboard

重定向至:

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]

但它没有用。

有什么问题?

答案1

使用起来非常简单mod_rewrite

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

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

答案2

你可以试试mod_alias——Apache HTTP 服务器重定向指令。

Example:

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

* 更新 *

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

相关内容