web-dev-qa-db-ja.com

URLに特定のパターンがある場合はApacheforceがhttpsにリダイレクトされます

Apacheが「admin-」パターンで始まる場合、または同じuriのhttpsへの「admin/user/login」リダイレクトを含む場合、どうすればURIを強制できますか。

例えば:

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

そして、このパターンのいずれも持たないhttps URIがある場合は、同じURLのhttpにリダイレクトする必要があります。

例えば:

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]

しかし、それはうまくいきませんでした。

どうしたの?

2
Arash Mousavi

これはmod_rewriteを使用すると非常に簡単です。

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

これにより、RewriteRuleのパターンに一致するURLがHTTPS経由で同じURLに書き換えられます。

3
dawud

mod_alias --Apache HTTP Server リダイレクトディレクティブを試すことができます。

Example:

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

*更新*

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