Помогите упростить .htaccess

Обсуждение любых вопросов связанных с файлами конфигурации .htaccess

Помогите упростить .htaccess

Сообщение Webkit » Пн апр 23, 2012 7:18 pm

Добрый день!

Сделал .htaccess для своих нужд. Правило RewriteRule ^(([^/]*)(/([^/]*)(/.*)?)?)?$ index.php?page=$2&list=$4 выполняется при условии что REQUEST_FILENAME не является существующим файлом с расширением css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico (если не существует то правило выполняется).

Файл .htaccess:

RewriteCond %{REQUEST_FILENAME} !\.(css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico)$
RewriteRule ^(([^/]*)(/([^/]*)(/.*)?)?)?$ index.php?page=$2&list=$4 [L,QSA]
RewriteCond %{REQUEST_FILENAME} \.(css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([^/]*)(/([^/]*)(/.*)?)?)?$ index.php?page=$2&list=$4 [L,QSA]

Выглядит громоздко, учитывая повторение строк. Как можно упростить?
Webkit
 
Сообщений: 2
Зарегистрирован: Пн апр 23, 2012 7:15 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Alexx » Пн апр 23, 2012 8:56 pm

Несколько сложная логика:
Вначале мы проверяем если не файлы с расширением..

Вторым условие если файлы с этим расширением ( - здесь бы я поставил [NC,OR]
или [NC,AND]) т.к. после этого условий нет правил то соответственно и не чего не выполняется.. по кране мере в мне так кажется по теории))

Третьим условием как я понимаю мы проверяем что если любого файла нет то выполняется все тоже первое условие.

В теория я бы сделал так:

RewriteCond %{REQUEST_FILENAME} !\.(css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico)$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([^/]*)(/([^/]*)(/.*)?)?)?$ index.php?page=$2&list=$4 [L,QSA]

а вообще есть пословица если работает и не грузит сервер то и не лезь ))))))))))))))) :lol:
_
это был я)
Аватар пользователя
Alexx
Рядовой
 
Сообщений: 22
Зарегистрирован: Чт апр 12, 2012 3:01 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Webkit » Пн апр 23, 2012 9:44 pm

Спасибо большое.

Мой конечный вариант:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !\.(css|jpg|gif|png|doc|ico)$ [NC]
RewriteRule ^(([^/]*)(/([^/]*)(/.*)?)?)?$ index.php?page=$2&list=$4 [QSA]
Webkit
 
Сообщений: 2
Зарегистрирован: Пн апр 23, 2012 7:15 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Htaccess

Кто сейчас на форуме

Зарегистрированные пользователи: нет зарегистрированных пользователей

cron