리디렉션이 많은 경우 here의 질문에 대한 거대한 답변을 만들었지 만 리디렉션과 관련된 질문이지만 원리는 완전히 동일합니다.
당신은 그런 리디렉션의 톤이 있었다 : 당신이 원하는 내가 파일에 덤프 한
RewriteCond %{QUERY_STRING} ^id=4177$
RewriteRule ^play\.php$ http://www.diz.com/play/Game1 [R=301,L]
RewriteCond %{QUERY_STRING} ^id=4195$
RewriteRule ^play\.php$ http://www.diz.com/play/Game2 [R=301,L]
RewriteCond %{QUERY_STRING} ^id=4303$
RewriteRule ^play\.php$ http://www.diz.com/play/Game3 [R=301,L]
...............
모든 URL을
는 우리가 가진 긴 대화 후, 나는 해결책을 넣어 리디렉션 할 수 있습니다. 이렇게 :
4177 Game1
4195 Game2
......
등등.
이 간단한 텍스트 파일을 해시 맵으로 변환했습니다. 이처럼 :
httxt2dbm -i dynamic.txt -o dynamic.map
지금 내가 시험에 대한 내 가상 호스트이 재 작성 규칙을했습니다 그들은 일 :
RewriteMap dynamic \
dbm:/pathtofile/dynamic.map
RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)(&|$)
# if condition met, don't touch the URL but set an environment variable:
RewriteRule ^play\.php$ - [E=DYNAMIC:${dynamic:%2|}]
# if environment variable not empty = found => redirect:
RewriteCond %{ENV:DYNAMIC} !^$
RewriteRule ^play\.php$ http://www.mysite.com/play/%{ENV:DYNAMIC} [R=301,L]
NB을 : 당신은 당신이 당신의 자신의 서버가 내게 말했다. 그게 내가 당신이 그렇지 않으면 지금
작업 대신에 100 개 이상의되지 않습니다 아닌 htaccess
파일에, 당신의 vhost
파일에 다음의 RewriteRules를 추가해야합니다 이 대답을했고, 한 이유 재 작성 규칙을 사용하면 5 개 좋은 재 작성 규칙을하고 동적이다, 해킹 : 당신은 그냥 dynamic.txt
에 게임을 추가, 다른 리디렉션을 추가 할 경우 다시 컴파일
httxt2dbm -i dynamic.txt -o dynamic.map
필요 없음을 서버를 다시 시작, 그것을 완벽하게 작동해야합니다!
희망이 도움이되었습니다!
이미 리디렉션 된 URL을 어떻게 알 수 있습니까? 목록? 필터? 정규 표현식? 방법? 너는 매우 모호하다. –
@ Olivier Pons : 내 북마크 된 URL 중 일부는 이미 내 북마크 된 URL이므로 정적 인 URL로 리디렉션됩니다 ... – phphunger
정적이 아니며 동적이지만 Google 자체 게임 URL입니다. 사용자가 해당 URL을 북마크에 추가하면 해당 URL에서 오는 트래픽이 느슨해지기를 원하지 않습니다.모든 동적 URL을 홈페이지 (index.php)로 리디렉션하는 방법을 알려주십시오. – phphunger