2011-05-16 3 views
0

작동하지 :RewriteRule의이 내 htaccess로 파일의 내용입니다

RewriteEngine on 
RewriteRule ^upload$ upload.php 
RewriteRule ^/(\d+)/?.*$ /view.php?id=$1 [L] 

첫 번째 규칙이 성공적으로 작동합니다. http://localhost/upload으로 이동하면 upload.php 페이지가 표시됩니다.

하지만 두 번째 규칙은 그렇지 않습니다. 내가 찾은 : http://localhost/1234/some-string 나는 404 오류가 발생합니다. 이 페이지는 http://localhost/view.php?id=1234입니다.

규칙을 사용하여 무엇을하려는 지 알 수 있기를 바랍니다. URL 끝에있는 마지막 문자열을 완전히 무시하고 1234을 view.php의 매개 변수로 사용하고 싶습니다.

왜이 기능이 작동하지 않는지 알 수 있습니까? 나는 내가 생각할 수있는 모든 것을 시도했지만 성공하지 못했습니다. 감사!

답변

1

/1234/ 디렉토리를 찾으려고 시도하는 중입니다. -/을 변경하고는

편집을 작동합니다 : mod_rewrite는 첫 번째 슬래시없이 경로를받는 반면, 완전히 잘못 ... 그것은 당신이 당신의 패턴의 시작 부분에 /을 가지고 실제로 있다는 얻었다.

+0

편집 : 죄송합니다. 잘못되었습니다. 네가 옳아. 대신이 작업을 수행하면 작동합니다 :'RewriteRule^(\ d +) /?.*$ /view.php?id=$1 [L]'. 당신이'-'의 의미가 무엇인지 확신 할 수 없습니다. – Josh

+0

그것은 먼저 디렉토리를 찾는 것이기 때문에 그 일을 중단하는 방법을 모릅니다. 첫 번째 작업은 url이'/'로 끝나지 않기 때문에 작동합니다 (규칙이 그 결과를 지정하지 않기 때문에이 경우에도 작동하지 않습니다). – fbstj