2009-11-01 4 views
0

내가 다시 할 싶습니다 두 개의 URL이 있습니다mod_rewrite를-여러 페이지

  1. /artist.php?name=x =>/x

  2. /albums.php?title=y => 이것은 내가 넣어 것입니다 /y

.htaccess 파일에서 :

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ artist.php?name=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ artist.php?name=$1 
RewriteRule ^([a-zA-Z0-9_-]+)$ albums.php?name=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ albums.php?name=$1 

albums.php의 URL도 같이 실행되도록 파일을 어떻게 편집해야합니까? (첫 번째 만 작동합니다.) 도움을 주셔서 감사합니다.

답변

3

아티스트와 앨범 모두에 중복 패턴이 있으므로 둘 다 작동하지 않을 수 있습니다! 어쨌든 mod_rewrite이 아닙니다. 웹 응용 프로그램은 제공되는 이름 매개 변수로 아티스트 또는 앨범의 존재 여부를 확인하고 어느 것이 의도되었는지 결정할 수 있지만 간단한 mod_rewrite 예제의 범위를 벗어날 수 있습니다.

URL에 뭔가 다른 예를 들어, 아티스트 및 앨범 구별하기 : 또한

RewriteRule ^/artist/([a-zA-Z0-9_-]+)/?$ artist.php?name=$1 
RewriteRule ^/album/([a-zA-Z0-9_-]+)/?$ albums.php?name=$1 

공지 사항 나는 /? 수 있도록 (?는 "0 또는 1"을 의미 한정 기호입니다)를 사용하여, 2에 4 재 작성 규칙을 단축하는 것이 슬래시가 있거나없는 URL. 그러나 제 의견으로는 같은 페이지에 대해 2 개의 URL을 사용하지 않으려면 하나 또는 둘 중 하나를 선택하는 것이 좋습니다.

0
RewriteRule ^/artist/([a-zA-Z0-9_-]+)/?$ artist.php?name=$1 [L] 
RewriteRule ^/album/([a-zA-Z0-9_-]+)/?$ albums.php?name=$1 [L] 
관련 문제