2014-11-18 2 views
0

.htaccess의 REWRITE 규칙에 문제가 있습니다. 동적 URL을 정적 URL로 다시 작성하려고합니다..htaccess의 다시 쓰기 규칙이 요청한대로 작동하지 않습니다.

웹 사이트는 다국어 웹 사이트입니다.

www.example.net/index.php?lang= de 
www.example.net/de/ 
...and so on.... 

아래와 같이 이미 선택한 언어에 대한 정적 URL을 만들었습니다 지금은이 같은 URL 쿼리를 다시 작성해야합니다

www.example.net/de/player.php?Name=Gianfranco&Surname=Zola&id=468 

www.example.net/de/spieler-Gianfranco-Zola-468.html 

규칙 I에 사용 된 :

RewriteEngine On 
RewriteRule ^de/spieler-([^-]*)-([^-]*)-([^-]*)\.html$ /player.php?Name=$1&Surname=$2&id=$3 [L] 

독일어로 Zola와 관련된 페이지에 연결하기 위해 링크를 클릭하면 요청한 프로필 페이지에서 링크 도스가 리디렉션되지 않지만 링크를 클릭 한 동일한 페이지에서 연결됩니다.

브라우저에 표시된 링크

위에서 말했듯이, 나는 세부 사항을 볼 수 없습니다, 올바른
에게

www.example.net/de/spieler-Gianfranco-Zola-468.html하지만, player.php 페이지에 포함되어 있습니다.

+0

정말 잘못하고 있습니다. 아름다운 URL을 관리하기 위해서는 최신 PHP 프레임 워크에서 찾을 수있는 라우팅 시스템이 필요합니다. 예를 들어, Laravel에서 10 초 내에 문제를 해결할 수 있습니다. http://laravel.com/docs/4.2/routing#basic-routing – Yang

+0

'([^ -])'은 한 글자에만 해당됩니다. 대신에'([^ -] *)'또는'([^ -] +)'를 사용하십시오. '+'는 1 이상이고'*'는 0 이상입니다. – Croises

답변

0

그것은 다음과 같이해야한다,

RewriteEngine On 
RewriteRule de/spieler-([^-]*)-([^-]*)-([^-]*)\.html$ player.php?Name=$1&Surname=$2&id=$3 [L,NC] 

보정 : ^ 나는이 규칙을 시도 player.php

0

앞에 '/' 슬래시를 제거 문제 &했다

RewriteRule ^de/spieler-([^-]*)-([^-]*)-([^\.]*)\.html$ /player.php?Name=$1&Surname=$2&id=$3 [L] 

또는

RewriteRule ^de/spieler-([^-]*)-([^-]*)-([0-9]*)\.html$ /player.php?Name=$1&Surname=$2&id=$3 [L] 
+0

안녕하세요, Newman, 답변 해 주셔서 감사합니다. 이제 나는 정말로 혼란 스럽다. 나는 아파치와 재 작성에 대한 경험이 없다. 이 규칙은 어디에 둘 것인가? 폴더를 www.example.de/de 폴더의 .htaccess 또는 .htaccess에 넣을까요? – user4265789

+0

@ user4265789, 주 .htaccess에 넣어야합니다. 귀하의 질문에서 규칙을 바꿉니다. – newman

관련 문제