2013-03-07 2 views
0

내 사이트의 URL 리다이렉션에 약간의 문제가 있습니다.URL에 /index.php가없는 상태에서 /index.php와 함께 URL을 입력하면 어떻게 사용자를 리디렉션합니까?

RewriteEngine On 

# Start –301 redirect for "http://" to "http://www" 

Options +FollowSymLinks 

rewritecond %{http_host} ^example.com [nc] 

rewriterule ^(.*)$ http://www.example.com/$1 [r=301,L] 

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /?(.*)/index\.php 
RewriteRule ^(.*)$ /%1/ [L,R=301] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

이 fine.All URL이에 /index.php 필요없이 완벽하게 작동 작동이 내 htaccess로 파일입니다.

하지만 내 문제는 누군가 index.php (예 : https://example.com/index.php/test)으로 URL을 넣는 것입니다. 그래서 그것은 또한 작동 할 것입니다. 그것은 문제입니다, 나는 사용자가 /index.php를 URL에 넣었을 때 /index.php을 가지지 않고 동일한 페이지로 리다이렉트하기를 원합니다. 이 문제를 해결하도록 도와주세요.

+0

사용자가 URL에'index.php '를 추가하는 이유는 무엇입니까? 그들이하더라도, 왜 그것을 "고정"귀찮게? 일반적으로 해커 만이 URL의 형식을 잘못 변형하려고합니다. –

+0

@TimS. 누군가가 /index.php와 함께 URL을 넣으면 Google에 중복 된 URL로 표시됩니다. 어떤 suggesion 있다면 도와주세요 – Toretto

+0

아니, 그것은 중복 표시하지 않습니다. 사이트에 'index.php'버전이 포함 된 링크를 추가하지 않으면 Google 크롤러가 색인을 생성하지 않습니다. –

답변

0

당신은 이미이 위의 규칙을 추가해보십시오 :

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /?(.*)/index\.php 
RewriteRule^/%1/ [L,R=301] 

것은 당신이 요청 URI에 대해 일치하려고하면을, 그것은 루프가 발생할 수 있기 때문에 이미 인덱스에 라우팅 요청이 규칙 .php, 요청 URI를 으로 다시 쓰고 index.php 이렇게 엔진 루프를 다시 작성할 때 일치하도록합니다.

+0

홈 페이지로 리디렉션됩니다. /index.php없이 동일한 요청 페이지로 리디렉션 할 수 있습니까? – Toretto

+0

@Toretto It [나를 위해 일한다] (http://i.stack.imgur.com/5Lkrl.png) –

+0

당신이 내 규칙 위에 코드를 넣으려고 말했듯이 내 질문을 업데이트했다. 나를 홈 페이지 'http : // example.com //'로 리디렉션 할 것이므로 문제가 무엇인지 알 수 있습니다. 제발 제안 해주세요. – Toretto

관련 문제