цикл символических ссылок apache / .htaccess

#regex #.htaccess #loops #symlink

#регулярное выражение #.htaccess #циклы #символическая ссылка

Вопрос:

Мы используем символические ссылки для совместного использования различных ресурсов на нескольких сайтах и недавно заметили, что наш журнал ошибок apache содержит множество следующих;

Запрос превысил лимит 10 внутренних перенаправлений из-за вероятной ошибки конфигурации.

Вот .htaccess полностью;

 Options -Indexes

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /site/assets/sym/$1 [L]
  

Руководство apache предупреждает об ограничениях тега [L];

Поэтому важно, если вы используете директивы RewriteRule в одном из этих контекстов, > чтобы вы предприняли явные шаги, чтобы избежать зацикливания правил, а не рассчитывать исключительно на флаг [L] для > завершения выполнения ряда правил, как показано ниже. ( http://httpd.apache.org/docs/current/rewrite/flags.html#flag_l )

Мне интересно, нужно ли что-то вроде добавления тега [NS] или, возможно, другого RewriteRule? — Любая помощь очень ценится!

ps. более подробная информация из журнала скорее подчеркивает для меня, что это проблема symp ?….

 [Fri Sep 30 10:38:59 2011] [debug] core.c(3083): [client someIP] r->uri = /site/assets/sym/sym/sym/sym/sym/sym/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/sym/sym/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/sym/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/sym/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [debug] core.c(3089): [client someIP] redirected from r->uri = /site/assets/template/css/default.css 
[Fri Sep 30 10:38:59 2011] [error] [client someIP] 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. 
  

pps. файл, который он ищет, не существует, поэтому, возможно, вопрос нужно перефразировать на что-то вроде «как я могу изменить этот файл htaccess, чтобы использовать символическую ссылку directoy только один раз перед завершением» — это немного более лаконично, да ?!

Комментарии:

1. RewriteCond %{REQUEST_URI} !^/site/assets/sym, похоже, покрывает это 🙂 — надеюсь, это может помочь кому-то еще с уставшим сервером!

Ответ №1:

 RewriteCond %{REQUEST_URI} !^/site/assets/sym