2017-04-13 1 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 
관련 문제