Настраивал Mod_Rewrite

Настраивал Mod_Rewrite

Целую неделю потратил на настройку этого модуля. Для тех кто не знает, mod_rewrite - это модуль веб-сервер Apache, целью которого является преобразование url адресов. Можно настраивать разное, делать перенаправления, блокированние и многое другое.

Моей задачей было следующее. Делаю проект, где я изменил структуру WordPress, в итоге мои статьи выводились не в index.php, а на другой странице, под названием primer.php. Из-за этого, перестал работать плагин SimpleTags, вернее он работал, но работал не корректно. При щелчке на тег, страницы не выводились. Было показано, что страница не найдена. В итоге я попробовал добавить это:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule ^tag/.*$ /home/sait/public_html/sait.ru/wp-content/themes/tema/tegi.php

RewriteRule ^.htaccess$ - [F]

</IfModule>

После этого все ссылки вида sait.ru/tag/меняющиеся_ссылки, перенаправляются на файл tegi.php

<IfModule mod_rewrite.c>

RewriteEngine On RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ /index.php/$1 [L,QSA]

</IfModule>

А эти строки я вставил для того, чтобы другие ссылки WordPress работали правильно.

После вышеописанных действий при щелчке выводились статьи, но почему то все статьи, а не те, где содержались определенные метки. Это меня не устраивало и я начал искать, как решить эту проблему.

После моих долгих проверок оказалось, что теги корректно работают только после вставки кода SimpleTags в файл index.php. А ведь моя структура была совсем другой. Мне не нужно было выводить статьи на начальной странице. Ну и здесь мне помог mod_rewrite. Теперь код вывода статей и меток, плюс дизайна сайта я разместил в index.php. После этих действий, все стало работать правильно.

Как оказалось, нужно было сделать совсем немного. Необходимо было добавить в файл .htaccess эту строку:

DirectoryIndex main.php

И теперь вывод стартовый страницы производился не через index.php, а через другую страниу, у меня она называласб main.php.

Много времени я потратил на эту задачу. Написал эту статью в надежде на то, что у кого то будет аналогичная ситуация. Надеюсь вы поняли смысл этой статьи. Далее приведу обозначение синтаксиса модуля mod_rewrite.

RewriteEngine On - этот параметр включает модуль

RewriteBase / - ссылка на папку вашего сайта

RewriteRule ^tag/.*$ /home/sait/public_html/sait.ru/wp-content/themes/tema/tegi.php - перенаправляет ссылку на tegi.php.

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

RewriteRule ^.htaccess$ - [F] - если пользователь наберет адрес пути к файлу .htaccess, то он не откроется, это сделано для того, чтобы обезопасить Вас от посторонних глаз.

[F] - это специальные флаги, флагов у мод реврайт достаточное количество. Так, что пробуйте эксперементировать. До встречи!

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *