Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > директива на апач


Автор: bars80080 2.6.2011, 18:10
есть у меня такой код в .htaccess

Код

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]



он перенаправляет на index.php в корне сайта все запросы, которые не удаётся найти физически

как бы мне переписать эту директиву, чтобы он не перенаправлял те запросы, которые заканчиваются на расширения .ico, .png, .gif, .jpg, .css, .js

?

Автор: Сумасшедший 2.6.2011, 23:21
Как сделано у меня:
Код

RewriteCond %{REQUEST_URI} !cgi-bin/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !(jpg|gif|png|ico)
RewriteRule ^(.*)$   /cgi-bin/index.pl [L]


кривовато, стоит улучшить добавлением символа конца строки к расширениям, но мне пока это не требуется.
По образу и подобию сами догадаетесь как сделать Вам.

Автор: bars80080 3.6.2011, 11:54
да, сделал так:

Код

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !(\.jpg|\.jpeg|\.gif|\.png|\.ico|\.css|\.js)$
RewriteRule ^(.*)$ index.php [L,QSA]


как видно, пришлось подставить точки, так как без них правило реагировало и на адрес типа site.ru/page_about_gif
но даже в этом случае правило будет реагировать на site.ru/.gif/a или на site.ru/.gif/
зато не будет реагировать на site.ru/some.GIF

а можно прописать выражение так, чтобы оно реагировало только на расширение в конце?
и было регистронезависимым?

Автор: Сумасшедший 3.6.2011, 15:15
Возможно. В perl:
! =~ m/\.gif$/i;
в .htaccess как будет выглядеть - не подскажу

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)