2017-04-13 12 views
0

このコードを使用して、自分のサイトをhttpからhttpsにリダイレクトします。それはhttpをhttpsにリダイレクトしますが、index.phpを表示しますか?cmd =

RewriteCond %{HTTPS} =off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301] 

を働くが、私はリフレッシュしたときに私のURLの変更:

https://example.com/index.php?cmd= 

は、ここで私はそれを修正することができますどのように私の.htacess

Options +FollowSymLinks 
Options -Indexes 
ErrorDocument 404 error/404 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?cmd=$1 [L,NC,QSA] 

RewriteCond %{HTTPS} =off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301] 

です。おかげ

(申し訳ありませんが、私はタグ.htacessを追加することはできませんので、私はPHPのタグを選択してください)

+0

'のRewriteRule ^(。*)$ index.phpを?CMD = $ 1 [L、NC、QSA]'のためには何ですか? – kabanus

+0

'apache'タグを追加しようとしましたか? – Manngo

+0

kabanus ..私は本当にそれが何であるか分からないのですか?無効にしましたが、引き続きindex.phpを表示しますか?cmd = – Asamoa

答えて

0

この規則:

RewriteRule ^(.*)$ index.php?cmd=$1 [L,NC,QSA] 

一致するすべての文字列を:

  1. ^手段がの開始しますURL
  2. $を意味します。
  3. .は任意の文字に一致し、*はこれを何度も繰り返します(0を含む)。
  4. 括弧は文字列内にあるものをキャプチャします。つまり、ホストのルートでは(.*)は何も取得しません。
  5. $1はキャプチャされたものです。あなたは何もないホストのルートをリフレッシュしたので、何も見えません。

とにかく、コマンドとしてリダイレクトする必要がない場合は、その行を削除してApacheサーバーを再起動してください。例えば

YourWebsite.com/coolStuff 

YourWebsite.com/index.php?cmd=coolStuff 
にその行でリダイレクトされ
関連する問題