2016-04-08 17 views
1

をクエリストリング「S」で1をexcpet私はWordPressのウェブサイトを持っていると私は、HTTPからすべてのURLをリダイレクトするために、次の.htaccessのコードを使用していますHTTPS.htaccessファイルが

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

まあ、それうまくいっている!しかし今では、QueryString 's'で1ページだけを非SSL(HTTP)ページにリダイレクトする必要があります。 IS-

HTTP URLの構造://www.example.com/articles/ S = {} random_texts (現在)

と私はそれがにリダイレクトしたいです - ?

http://www.example.com/articles/?s= {random_texts} (探して)

答えて

1

試行:

RewriteEngine On 
RewriteCond %{THE_REQUEST} !/articles/\?s=.+ [NC] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
##redirect /articles/\?s=.+ from https to http## 
RewriteCond %{THE_REQUEST} /articles/\?s=.+ [NC] 
RewriteCond %{HTTPS} on 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

これをテストする前に、ブラウザのキャッシュをクリアしてください。

+0

Not working!キャッシュをクリアした後でさえも – Disk01

+0

あなたは何をしようとしていますか? – starkeen

+0

@ Disk01更新されたコードを試してください – starkeen

1

少し修正した後にstarkeenのおかげで私は問題を理解しました。クエリを解決したコードは次のとおりです。

RewriteEngine On 
RewriteCond %{THE_REQUEST} !/articles/ [NC] 
RewriteCond %{QUERY_STRING} !s [NC] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{THE_REQUEST} /articles/ [NC] 
RewriteCond %{QUERY_STRING} s [NC] 
RewriteCond %{HTTPS} on 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]