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