2011-04-23 1 views
1

나는이 잘 작동.htaccess url을 사용하여 missing.html 페이지에 대한 여러 번의 호출을 리디렉션하고 관리하는 방법은 무엇입니까?

mydomain.com/index.php?q=something하는 mydomain.com/something.html 호출을 리디렉션 내 htaccess로를 설정 한 ....하지만 난 이후가 이동하는 것으로 나타났습니다 새로운 호스팅 쿼리 "누락"에 대한 여러 쿼리를 받고 있습니다. 잘못된 URL이 "missing.html"인 기본 html 페이지로 인해 mydomain.com/index.php?q=missing으로 리다이렉트 되었기 때문입니다. 따라서 누락 된 URL은 PHP 스크립트가 "누락 된"상태로 입력되도록 실행합니다.

누락 된 URL에 PHP 스크립트를 실제로 호출하지 않고도 URL을 리디렉션하고 missing.html에 대한 호출을 관리하는 방법이 있습니까?


솔루션으로 편집;

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule (.*)\.html index.php?q=$1 

가한다 RewriteCond (위 그림 참조) 앞에 배치해야 할 것 같습니다 : 여기에는 기존의 URL가없는 경우에만 리디렉션을 수행 내 htaccess로입니다.

+0

'RewriteCond'는 일반적으로 'RewriteEngine on'이후에옵니다. 좀 이상하게 보입니다. – rfw

+0

@rfw ok, 감사합니다. – tucson

답변

3

찾고 계신 분은 RewriteCond입니다.

.htaccess이 시도 :

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

이 규칙은 또한 아무것도에 대한 접근 경로를 다시 쓰기가 중지됩니다. 당신이 엄격하게 missing.html를 원하는 경우, 다음 규칙은 충분합니다 :

RewriteCond %{REQUEST_URI} !/missing.html 

참고 이러한 지침은 RewriteRule 앞에 와야합니다.

+0

우수합니다. 고맙습니다. – tucson

+0

왜 그들은 "RewriteRule'"앞에 올 필요가 있습니까? – leugim

+0

다음의''RewriteRule''이 작동하는 조건을 지정하기 때문에 나는 틀릴 수도 있습니다. – rfw

1

다른 규칙보다 우선시되는 재 작성 규칙을 추가 할 수 없으며 mydomain.com/missing.html을 404 페이지의 위치로 다시 쓸 수 있습니까? 이미 설정 한 리디렉션 규칙을 사용하면 도움이됩니다.

관련 문제