2012-08-11 2 views
0

안녕하세요 다른 스레드에 표시된 htaccess에서 modewriter로 다양한 방법을 시도했습니다. 내 URL을 www.example.com/categories.php?category=1에서 www.example.com/categories/science으로 리디렉션하고 싶습니다.301 동적 페이지 리디렉션

나는 내가 틀린 곳에서도 정말 고맙게 생각하고있다. 고맙습니다. 당신이처럼이 될 것 리디렉션 할 그냥이 하나 개의 URL이라고 가정

+0

'1'에서 '과학'까지 어떻게 얻습니까? –

답변

1

: 이것은 당신이 .htaccess 파일을 사용하는 경우에

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^category=1$ [NC] 
RewriteRule ^categories.php$ www.example.com/categories/science/? [L,R=301] 

가, 그렇지 않으면 prepending이 슬래시 추가 :

RewriteRule ^/categories.php$ www.example.com/categories/science/? [L,R=301] 

쿼리 문자열은 삭제됩니다. 브라우저의 주소 표시 줄에 사용자에게 표시하려면 [R] 만 넣으십시오. 어떤 지위를 원한다면 Google은 영구적 인 경우 301 건을 좋아합니다.

다음 당신은 디렉토리 www.example.com/categories/science

행운에의 index.php로 들어오는 요청을 잡을 수있다!

+0

안녕하세요, 귀하의 빠른 답장을 보내 주셔서 감사합니다. htaccess 파일에서 시도해 봤는데 URL이 내 페이지를로드 할 때 http://example.com/www.example.com/categories/science/에서 404 페이지를 찾을 수 없습니다. 어떤 생각이 들었습니까? www가 아닌 ​​주소에서 www 주소로 리디렉션하고 내 index.php 페이지를 내 웹 사이트로 리디렉션하는 데 사용 된 다른 차선이 문제를 일으키는 지 알 수 없습니까? 나는 그들을 제거하고 제안을 시도했지만 페이지 404와 같은 주소는 여전히 동일합니다. – user1592565

+0

이 [R = 301, L] 한다 RewriteCond http://www.example.com/$1. (*) 제가 한다 RewriteCond % {HTTP_HOST}^example.come RewriteRule의 일 한다 RewriteEngine 전에 사용되는 코드 % {THE_REQUEST} ^. */index.php RewriteRule^(. *) index.php $ http://www.example.com/ – user1592565

+0

다른 규칙에 따라 분리되지 않은 리디렉션이 발생하고있는 것 같습니다. 또한 브라우저의 캐시에 문제가 생길 수 있습니다. 플러시를 시도하고, 브라우저를 다시 시작하고, 테스트하는 동안 [R = 301]을 사용하지 않고 일반 [R]을 사용하십시오. 마지막 규칙은 새로운 index.php를 방해합니다. –