2013-12-21 3 views
0

301 리디렉션 동적 URL을 정적 URL로 변환하는 방법은 무엇입니까?301 동적 URL을 정적 URL로 리디렉션

www.example.com/book/title 

으로이 경우

www.example.com/book.php?book=title 

에서

는 정적 URL로 변환해야 동적 URL을 요청할 때. 동적 URL을 변환해야하며 대신 고정 주소가 검색 주소창에 표시되어야합니다.
Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^user/([^-]+)/?$ /user.php?id=$1 [NC,L] 

어떤 사람이 나에게 동적 URL TIO 정적 URL의 301 리디렉션을 줄 수 :

는이 코드를 얻었다. 미리 감사드립니다.

+0

'.htaccess'는'user.php'를 타겟으로합니다. 'book.php'를 추가하는 데 도움을 원하셨습니까? –

+0

예. 하지만 동적 URL에서 정적 URL로 301 리디렉션이 발생했습니다. 공유 할 생각이 있으십니까? –

답변

0

가장 쉬운 방법은 .htaccess 파일에 Apache의 mod_rewrite을 사용하는 것입니다. 검색 주소창에 '정적'(서/공상) URL을 얻으려면 외부 리디렉션이 필요합니다. 서버가 그걸로 합리적인 일을하도록하려면 내부 재 작성이 필요합니다. 무한 루프를 방지하려면 %{THE_REQUEST} 트릭을 사용해야합니다.

%External redirect 
RewiteCond %{THE_REQUEST} ^(GET|HEAD)\ /book\.php\?book=(.*)\ HTTP 
RewriteRule^/book/%1? [R,L] 

%Internal rewrite 
RewriteRule ^book/(.*)$ /book.php?book=$1 [L] 

위의 규칙은 테스트되지 않았지만 작동해야합니다. 작동하는 경우 [R,L][R=301,L]으로 변경하십시오. 이렇게하면 리디렉션이 영구적으로됩니다. 그러면 브라우저에서 리디렉션이 캐시되고 서버에 대한 요청 양이 줄어들고 검색 엔진이 올바른 URL을 기억하게됩니다. 실제로 서버에 요청을 보내는 대신 캐시 된 이전 시도가 표시 될 수 있으므로 테스트하는 동안이 작업을 수행하지 않으려합니다.

관련 문제