2012-01-30 3 views
0

내가 Nginx에에 다음 URL을 만들고 싶어Nginx에 간단한 재 작성

comments.php?id=34 

나는이 함께 노력하고

/comments/34 
/comments/34/ 

이되고 그것을 작동 나의 질문, 입니다

rewrite ^/comments/$id/(.*)$ /comments.php?id=$1? last; 

어떻게 리디렉션 comments.php? id = x to/comments/id

답변

6
rewrite ^/comments.php$ /comments/$arg_id? permanent; 
+0

감사합니다. 고맙습니다. 훨씬 더 청결한. – TheBlackBenzKid

+0

반갑습니다. – chr1x2

+0

답변을 더 최신으로 변경하고 전체적으로 더 나은 해결책으로 변경했습니다. – TheBlackBenzKid

1

the documentation에 따르면 "다시 쓰기는 매개 변수가 아니라 경로에서만 작동합니다."

대신보십시오 : 당신이

if ($args ~ id=(.+)){ 
    rewrite comments\.php /comments/$1 last; 
} 
+0

하시기 바랍니다 설명 할 수 있습니다. 내 재 작성과 함께 이걸 추가한다는 뜻이야. – TheBlackBenzKid

+0

그것은 단지 제안 일뿐입니다. 원래 게시 된대로? id = X 매개 변수를 사용하여 요청을 '/ comments/X'로 다시 작성합니다. ^를'comments.php'로 바꾸면 당신이 원하는 것을 얻을 수 있습니다 (나는 그것을 보여주기 위해 편집 할 것입니다). '/ comments/$ id/$ userid' 요청에 맞는 방법을 알아야합니다 - 다시 쓰는 순서가 중요하지만 모호한 URL 패턴을 가지고있는 것처럼 보입니다. – pjmorse

+0

다른 말로하자면,'rewrite' 지시자는'? '앞에 오는 요청의 부분만을 보게됩니다. 매개 변수를 테스트하려면'if' 블록을 사용해야합니다. – pjmorse

관련 문제