2012-10-22 2 views
1

Google에서 URL을 다시 작성하는 데 도움이되는 자습서를 검색했습니다. 나는 누군가가 내가 왜 써야하는지, 왜 설명해야하는지 설명하고 싶다. 이 URL을 가지고mod_rewrite는 .htaccess를 사용하여 URL을 다시 작성합니다.

http://iescup.eu/tournaments.php?tourney[id]=1 
http://iescup.eu/tournaments.php?tourney[id]=2 
http://iescup.eu/tournaments.php?tourney[id]=3 

에 내가 좋아하는 것 :

나는이 URL이

http://iescup.eu/#!/tourneys/1 
http://iescup.eu/#!/tourneys/2 
http://iescup.eu/#!/tourneys/3 

등을

감사 룬 Naundrup 달

답변

0

브라우저의 URL 주소 표시 줄에 http://iescup.eu/tournaments.php?tourney[id]=1을 입력하십시오. 요청 /tournaments.php?tourney[id]=1은 서버 iescup.eu으로 전송됩니다. 해당 서버에서 문서 루트에있는 htaccess로 파일에서 이러한 규칙은 :

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^tourney\[id\]=([0-9]+)$ [NC] 
RewriteRule ^/?tournaments.php$ /#!/tourneys/%1? [L,R=301,NE] 

%{QUERY_STRING} 변수에 대해 일치와 숫자 ID 그룹화 및 % 1에 의해 backreferenced된다. 룰의 타겟은 쿼리 문자열을 제거하기 위해 마지막에 ?을 가지며, #이 인코딩되지 않도록 NE 플래그가 사용됩니다.

규칙은 브라우저를 http://iescup.eu/#!/tourneys/1으로 리디렉션하여 URL 주소 표시 줄을 변경합니다. 그런 다음 브라우저는 iescup.eu, /에 또 다른 요청을 보냅니다. #!/tourneys/1 조각 은 결코 서버으로 보내지 않습니다. 프래그먼트는 클라이언트 측에만 있으며 컨텐츠 처리 방법을 결정하는 데 사용됩니다 (javascript에서도 사용됨).

+0

엄지 손가락을 올리면 다른 질문이 생깁니다. 나는 http://iescup.eu/#!/tourneys/1이 url을위한 디스플레이 일 뿐이라고 생각했다. 브라우저에 링크를 입력하면 내 웹 사이트의 index.php로 돌아 간다. 어떻게 든 해결할 수 있습니까? –

+0

@RuneNaundrupDahl URI가 (조각이 없으면)'http : // iescup.eu /'이기 때문에 당신에게 다시 색인을 인도합니다. 프래그먼트에 따라 뭔가 렌더링하는 자바 스크립트가 있어야한다고 가정합니다. –

+0

예를 들어 주시겠습니까? –

관련 문제