2010-01-20 2 views
0

FTR, 이것은 분명히 프로그래머의 단점입니다. 문제는 그 작품에 짧은 URL 재작 성을 가지고 있다는 것입니다. 나는 www.mysite.com/matt를 할 수 있으며 결과를 묻는 PHP 페이지를 쳤을 것이다. 하지만 내가 필요로하는 것은 mysite.com/music/matt입니다..htaccess rewriterule은 실제 페이지가 존재하지 않는 한 서브 폴더의 페이지로 리다이렉트합니다

루트 디렉토리에서했던 것처럼 동일한 규칙을 하위 폴더에 사용하면 500 오류가 발생하고 mysite.com/을 리디렉션하려고 시도합니다. music/index.php 둘 다 큰 문제입니다. 나는 다음을 시도 할 경우, 나는 내부 500 오류가

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /music/artist_page.php?n=$1 [L,QSA] 

과는 먹을 나타납니다 여기

(즉 mysite.com/matt 예상 리디렉션으로) 루트에 잘 작동 내가 무엇을 가지고 있어요 기존 파일.

RewriteRule ^music/(.*)$ /music/artist_page.php?n=$1 [L,QSA] 

답변

1

귀하의 대체 목적지 music/artist_page.php^music/(.*)$ 일치하고, 따라서 당신은 재귀를 받고 있습니다. 첫 번째 규칙의 첫 번째 조건은 기존 파일에 매핑 할 수있는 요청을 제외하기 때문에 해당 규칙에 대한 조건을 피합니다.

+0

아아! 그 말이 맞아! 나는 아직도 htaccess에서 꽤 끔찍하다. .. 흠. 그래서 나는 그것을 어떻게 잡을 수 있냐? – Cyprus106

+0

@ Cyprus106 : 동일한 조건 또는이 조건을 사용하십시오 :'RewriteCond $ 1! = artist_page.php'. 이렇게하면 리디렉션 할 대상이 제외됩니다. – Gumbo

관련 문제