#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