2012-06-20 5 views
1

글쎄, 제목에서 다시 말하면 루프를 만들지 않고 모든 URL을 다시 쓸 수있는 방법을 찾을 수 없습니다. 나는 많은 옵션을 시도했지만 내가 리디렉션 루프 방지에 대한 하나의 방법 찾을 수 없습니다 : 아래아파치 - 루프없이 URL 다시 쓰기

RewriteRule ^/(.+) http://example.com/example/index.php$1 [R,L]                               
RewriteRule ^/?(.*) /var/www/example/index.php$1 [R]                                
RewriteRule ^/(.*)$ %{DOCUMENT_ROOT}/example/index.php$1 [R] 
RewriteRule ^$ /example/ [L] 

그리고 내 디렉토리 아파치의 conf입니다

<Directory /var/www/example> 
    Options FollowSymLinks 
    DirectoryIndex index.php 
    Order allow,deny 
    Allow from all 
</Directory> 

는하지만 루프 이유를 이해 나는 내가 원하는 것을하기위한 좋은 규칙을 상상할 수 없다.

편집

기본적으로 나는 example.fr의 IP 가상 머신에 OVH에서 호스팅 리디렉션하고 있습니다. 이것이 내 문제와 관련이있을 수 있습니까?

건배

편집 결국 원래의 경로를 추가 /example/index.php 할 수 밖에 아무것도/예/리디렉션됩니다

답변

3
RewriteEngine On 
    RewriteCond %{REQUEST_URI} !^/example/ 
    RewriteRule (.*) /example/index.php/$1 [L,R] 

: 그래서, 당신은 모든 것을 원하는 경우를 대신 /project_name/index.php로 리디렉션, 당신은 ... RewriteCond과 프로젝트 이름 RewriteRule 라인에 모두 단어 "예를"를 교환 할 필요가

,

PS는 : 여기 RewriteCond 라인은 없습니다 루프 (당신이 시도 할 때 따라서 URL이 /example/contact 체재) 않는 재 작성을 보장하기 위해 필요하다.

+0

나는 아직도 "It Works!" 아파치에서 페이지. /etc/init.d/apache2를 다시 시작한 아파치를 다시 시작했습니다. – renard

+0

1. 어디서 가져 왔습니까? 2. AllowOverride 지시어의 가치는 무엇입니까? /etc/apache2/httpd.conf에있는 – poncha

+0

AllowOverride 없음 기본 사이트 사용 가능한 파일 conf에서있었습니다. 나는 그것이 어떻게되는지 알려준다. 감사합니다 – renard

1

이 규칙은 이것은 당신이

RewriteCond %{REQUEST_URI} !^/example/ 
RewriteRule ^/(.*)$ %{DOCUMENT_ROOT}/example/index.php$1 [R] 

을한다 RewriteCond를 추가해야이 규칙이 규칙은 모든

RewriteRule ^/?(.*) /var/www/example/index.php$1 [R] 

에서 아무것도하지 않습니다 루프

RewriteRule ^/(.+) http://example.com/example/index.php$1 [R,L] 

의 원인이 안됩니다 미세한

RewriteRule ^$ /example/ [L]