2012-03-16 6 views
4

지난 2 일 내 컴퓨터 (Ubuntu 11.10, Apache/2.2.20 (Ubuntu), PHP 버전 5.3.6-13ubuntu3.1)에서 일부 응용 프로그램을 실행하려고합니다. 그것은 PHP Smarty에서 생성되었으며 재 작성 규칙을 사용합니다. 제대로 그것을 할 방법mod_rewrite가 PHP 확장을 추가합니까?

localhost/news.php

로 번역 것

localhost/news

: 모든 같은 링크와 함께 잘 작동합니다.

RewriteRule ^messages/(.*)$ /messages.php?action=$1

그러나 그것은 작동하지 않습니다 그러나 문제는이 규칙을 번역해야

localhost/message/inbox

같은 더 복잡한 링크입니다. 나는 그것을 디버깅하려했다. 나는하여 http.conf

RewriteLog "/home/krzysztofp/rewrite.log" 
RewriteLogLevel 3

에서 로깅을 truned 그리고 내가 볼 수있는 것은 시작 부분에

127.0.0.1 - - [16/Mar/2012:15:56:36 +0100] [krzysztofp/sid#7f8218546a30][rid#7f821837a0a0/subreq] (3) [perdir /var/www/engbook/] add path info postfix: /var/www/engbook/messages.php -> /var/www/engbook/messages.php/inbox

있다는 것입니다 그리고 그것은 message.php 일치하려고했습니다

127.0.0.1 - - [16/Mar/2012:15:56:36 +0100] [krzysztofp/sid#7f8218546a30][rid#7f821837a0a0/subreq] (3) [perdir /var/www/engbook/] applying pattern '^messages/(.*)$' to uri 'messages.php/inbox'

가상 호스트 :

<Directory /var/www/engbook> 
Options Indexes FollowSymLinks MultiViews 
AllowOverride All 
Order allow,deny 
allow from all 
</Directory> 

왜 그런 일이 벌어지고 있는지 알 수 있습니까?

편집 : 내가 스택에 모든 재 작성 규칙을 넣어 문제가 그래서 여기에 그들이있다 : 그들에 http://pokazkod.pl/d52823d5f0d31ff26e1e29873383d2a2ceb216306a56b3aec1 아무도 나에게 의심스러운 봐 :/

+1

게시하시기 바랍니다 제거하십시오 당신의 재 작성 규칙 – scibuff

+0

그것이 작동하지 않는다고 말할 때, 당신은 무엇을 의미합니까? 오류가 있습니까? 잘못된 페이지가 나옵니까? 잘못된 출력입니까? 나는 당신의 규칙을 사용했고'/ messages/inbox'에 갈 때'messages.php? action = inbox'를 호출했습니다. – roychri

+0

그리고 그게 내가 거기에 규칙을 기대하지만, 어떻게 든 그것은 단지 메시지를 호출합니까? 액션 =받은 편지함없이. messages.php에 $ _GET [ 'action']에 대한 switch statment가 있는데 그 변수 $ _GET이 비어 있음을 볼 수 있습니다 ... 아파치 구성에 문제가 있다고 생각하지만 대체 어디 있는지 알 수 없습니다 . – krzysiek

답변

8

MultiViews

<Directory /var/www/engbook> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 
+1

OP가 이것을 승인하지 않았지만 방금 같은 문제가 있었으며 MultiViews를 제거하여 문제를 해결했습니다. – M1ke

+1

고마워요 @afanasy. 재 작성 규칙 문제를 발견하는 데 도움이되었습니다. –

관련 문제