Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
GluK

Использование .htaccess mod_rewrite

Рекомендованные сообщения

04/25/12 16:11 (изменено)

В новой версии форума 3.3.1 в АЦ указано, что при использовании .htaccess mod_rewrite необходимо создать .htaccess в корневой директории форума со следующим содержимым:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} .*\.(jpeg|jpg|gif|png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /public/404.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Подскажите, является ли данное содержимое правильным? Я в коде не разбираюсь, просто смущает что RewriteCond %{REQUEST_FILENAME} !-f указано 2 раза.

 

В ранних версиях был такой код:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Изменено пользователем GluK

Поделиться сообщением


Ссылка на сообщение

Разделение на два правила сделано с целью снижения нагрузки на скрипты. Теперь если не найдена именно картинка - "(jpeg|jpg|gif|png)" - ошибка обрабатывается отдельным скриптом, в котором PHP-кода всего одна строчка:

<?php header("HTTP/1.1 404 Not Found"); ?>
<html>
<head><title>404 - IP.Board - Bulletin Board System</title></head>
<body>
<h1>404: Not found</h1>
<hr>
The file you requested could not be found
<hr>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>

 

Никаких запросов к базе, никаких проверок, быстро и легко. Часто бывает, что люди репостят картинки с вашего ресурса на других сайтах, в т.ч. и на очень популярных, и тогда, в случае, если вы у себя эту картинку, например, удалите, ваш форум сразу ляжет от нагрузки...

 

Если же запрос идет не к картинкам, то он обрабатывается по-старому - с инициализацией всех приложений, поиском, куда бы его передать, и генерацией сообщения об ошибке, если некуда.

 

Это очень полезная оптимизация.

  • Upvote 4

Поделиться сообщением


Ссылка на сообщение

Добрый день! Работал на форуме mod_rewrite с вот таким содержимым .htaccess:

AddDefaultCharset utf-8
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule . /index.php? [L]
</IfModule>

 

C недавнего времени все ссылки перестали работать, выдавая Not Found..

Если выключить mod_rewrite в админке - все ссылки заработают, только уже с index.php..

 

Подскажите пожалуйста куда копать?

Поделиться сообщением


Ссылка на сообщение

Проблема решилась, банально не было точки перед htaccess :)

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...