2011-09-21 7 views
0

나는 like.php라는 이름의 fb 디렉토리와 스크립트를 가지고있다. mod_rewrite를 사용하여 같은 파일에 get-id를 전달하고 싶습니다.아주 간단한 mod_rewrite 도움말

mypage.com/fb/like.php?id=5mypage.com/fb/like/5

내 것 (작동하지 않는) htaccess로는 다음과 같습니다

RewriteEngine on 
RewriteRule /fb/like/([0-9]+) /fb/like.php?id=$1 

여기에 무슨 문제가 보이나요?

답변

0

당신의 경기의 시작 부분에 슬래시를 제거하는 시도하고 너무 같은 패턴을 바꾸

RewriteRule fb/like/([0-9]+) fb/like.php?id=$1 

mypage.com/ 도메인 이름, 그래서 일치됩니다 문자열은 또한 캐럿을 사용하는 것을 고려 fb/like/5

입니다 당신의 일치 문자열의 시작은 fb하지만 fffb 일치 수 있도록 :

RewriteRule ^fb/like/([0-9]+) fb/like.php?id=$1 

여기에 short guide to mod_rewrite 도움이되었다고합니다. 당신의 후속 질문에 대한

편집 :

이 mypage.com/something/fb/like/5 일치하려면, 당신은이 작업을 수행 할 수 있습니다

RewriteRule ^([^/]+)/fb/like/([0-9]+) $1/fb/like.php?id=$2 

이 첫 번째 디렉토리로 저장 $ 1 [^/]+은 슬래시가 아닌 하나 이상의 문자와 일치한다는 의미입니다. 이 .htaccess 파일을 도메인의 루트 디렉토리에 넣으십시오.

두 번째로 마지막 규칙을 사용하여 .htaccess 파일을 "something"하위 디렉토리에 둘 수 있습니다. 희망은 그 말이 맞습니다.

또는 단순히 like.php/([0-9]+)과 일치하는 규칙을 작성하여 디렉토리 경로가 어떤 모양을 나타내더라도 작동 할 수 있습니다. 좀 더 일반적인 방법으로 가서 like.php이 아닌 모든 PHP 파일에 적용 할 수 있습니다. 사이트의 작동 방식에 따라 달라집니다.

+0

감사합니다. 그것은 우리의 라이브 서버에서 작동했습니다. 그러나 우리 개발자 - 서버에서 작동하는 것 같지 않습니다. 이 URL은 http://modx.cat.no/golfhistorie/fb/like.php?id=5와 같습니다. 그러면 재 작성은 어떻게 작성되어야합니까? – OptimusCrime

+0

원래의 규칙으로'golfhistorie/fb/like.php? id = 5'와 일치하고'/ fb/like/5'로 바꿉니다. 그러나 실제로 이것을 golfhistorie/fb/like/5로 바꾸고 싶었습니다. . 이 작업을 수행 할 수정 된 규칙을 사용하여 내 대답을 편집했습니다. – Anson

관련 문제