Опубликовано: 25 апреля 201213 г В новой версии форума 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> Изменено 25 апреля 201213 г пользователем GluK
Опубликовано: 26 апреля 201213 г Разделение на два правила сделано с целью снижения нагрузки на скрипты. Теперь если не найдена именно картинка - "(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> Никаких запросов к базе, никаких проверок, быстро и легко. Часто бывает, что люди репостят картинки с вашего ресурса на других сайтах, в т.ч. и на очень популярных, и тогда, в случае, если вы у себя эту картинку, например, удалите, ваш форум сразу ляжет от нагрузки... Если же запрос идет не к картинкам, то он обрабатывается по-старому - с инициализацией всех приложений, поиском, куда бы его передать, и генерацией сообщения об ошибке, если некуда. Это очень полезная оптимизация.
Опубликовано: 29 мая 201213 г Добрый день! Работал на форуме 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.. Подскажите пожалуйста куда копать?
В новой версии форума 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