2013-12-05 2 views
1

Мне нужна помощь. Я потратил полчаса, чтобы получить мое правило mod_rewrite. Неудачно.Apache mod_rewrite recursing

Мой корневой сервер структура:

/project/public_html/index.html 
/project/public_html/css/style.css 
/project/public_html/js/script.js 

Я хочу, чтобы получить доступ к нему из моего локального хоста, как:

/project/index.html 
/project/css/style.css 
/project/js/script.js 

У меня есть это в моем /project/.htaccess:

RewriteEngine On 

RewriteBase /project 
RewriteRule ^(.+)$ public_html/$1 [L,QSA,NS] 

Но я 'все еще получаю это:

[Thu Dec 05 12:29:20.252091 2013] [core:error] [pid 26176] [client 127.0.0.1:60642] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. 

И на самом деле происходит следующее:

[Thu Dec 05 12:29:20.252111 2013] [core:debug] [pid 26176] core.c(3520): [client 127.0.0.1:60642] AH00122: redirected from r->uri = /project/public_html/public_html/public_html/public_html/public_html/public_html/public_html/public_html/public_html/index.html 

Проблема должна быть предельно простой, но ни Google, ни руководство помогло мне.

Заранее спасибо.

+1

'^ (. *) $' Соответствует тому, что вы тоже переписываете. Вам нужно убедиться, что переписанный URL-адрес снова не соответствует вашему правилу. – Sumurai8

+1

Да, очевидно, но я не смог написать условие. Благодаря @anubhava, теперь он работает как шарм. – suricactus

ответ

1

Попробуйте это правило с дополнительным условием остановки цикла. Это условие сначала проверяет, был ли добавлен /public_html в URI запроса.

RewriteEngine On 

RewriteBase /project/ 

RewriteCond %{REQUEST_URI} !/public_html/ [NC] 
RewriteRule ^(.*)$ public_html/$1 [L,NS] 
+1

Спасибо, друг, это то, что мне нужно. :) – suricactus

+1

Добро пожаловать, рад, что это сработало. – anubhava