2014-11-08 3 views
-1

wamp (localhost)를 사용하고 다시 쓰기 규칙이 작동하지 않습니다. 나는 해결책을 찾고자했지만 아무 것도 찾을 수 없었다. 내가 원하는 무엇다시 쓰기 규칙이 작동하지 않습니다.

내가 사용자가

localhost/example/user1 

에 입력하고 내가 그들에게 USER1의 프로필을 보여주기 위해 서버를 원하는 수 있도록 할 것입니다. 즉, 사용자가 첫 번째 URL을 입력 할 때 서버에서 데이터를 수집하기를 원합니다.

localhost/example/group.php?u=user1 

.

에서 사용자가 입력,

localhost/example/user1 

사용자가 사용자 1의 프로필을 보게시기된다.

이제는 다음 코드를 사용하여 작동하게되었습니다. 그러나 그것은 말합니다

요청한 URL/example/user1은이 서버에서 발견되지 않았습니다.

비록 계정이 존재하지만.

내 .htaccess 파일이 localhost/example 디렉토리 내에 있습니다. 루트 디렉토리에 배치하려고했습니다. 나는

RewriteEngine On 

후 다음 줄

RewriteBase /example/ 

를 추가 시도했지만 아무것도 작동하는 것 같다 없습니다.

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)$ group.php?u=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ group.php?u=$1 
+0

예 나는 .... 그리고 나중에 작동하는지 확인했습니다. @anubhava – bayblade567

+0

오류는 규칙이 실행되지 않았거나 정규 표현식이 첫 번째 인수에있는 것과 일치하지 않는다는 것을 알게됩니다. 규칙이 실행되었지만 다시 작성된 파일이 존재하지 않으면 "이 서버에서 요청한 URL /example/group.php를 찾을 수 없습니다."라는 오류 메시지가 나타납니다. 어떤 일이 일어나고 있는지 테스트하려면 예제 디렉토리의 .htaccess에'RewriteRule^(. *) $/donotmatchthis/$ 1 [R, L]'규칙을 넣는다. 이 URL로 리디렉션되지 않으면 .htaccess 파일을 읽지 못하거나 규칙에 도달 할 수 없습니다. – Sumurai8

+0

은 다음으로 리디렉션됩니다. http : // localhost/donotmatchthis/ – bayblade567

답변

0

귀하의 질문과 다른 사용자 이름으로 재 작성 사실을 테스트 했으므로 정규 표현식이 잘못되었을 가능성이 있습니다. 사용자 이름에있을 수있는 모든 문자를 일치 시키려고하지 마십시오. 대신 사용자 이름에 사용할 수없는 문자 인 슬래시 문자를 제외하십시오.

RewriteRule ^([^/]+)/?$ group.php?u=$1 [L] 
+0

그러나 이것 때문에, localhost/example과 다른 모든 url에 대해서도 "User doesnt exist"를 준다. – bayblade567

+0

예제 폴더의 .htaccess에 넣지 않았습니까? – Sumurai8

+0

예. 하지만 내가 지금 무엇을 입력하든 상관없이 "사용자는 존재하지 않는다"고합니다. – bayblade567

관련 문제