Настройка WordPress. Не работают постоянные ссылки.

Если ваш веб-сервер – Apache, то могут быть две причины этой проблемы:

  1. Не работает .htaccess
  2. Не загружен модуль Apache – mod_rewrite


В первом случае необходимо проверить в настройках Apache (httpd.conf) следующие директивы AccessFileName и AllowOverride.
Для AccessFileName значение должно быть .htaccess (AccessFileName .htaccess).
Для AllowOverride (действует внутри <directory>) значение должно быть All (AllowOverride All).

Во втором случае проверяем прописан ли в настройках mod_rewrite.
В секции # ### Loaded Modules должна быть строка:

LoadModule rewrite_module [путь к модулю]/mod_rewrite.so

В секции # ### Added Modules :

AddModule mod_rewrite.c

Вливайтесь в общение

30 комментариев

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

  1. В общем почитал я статью и комменты, и понял что я ничего не понял. Не получается сделать нормальные ссылки

  2. Спасибо Вам за информацию. Работаю над сайтом на локальном сервере. Не работали ЧПУ. Сутки провозился. В итоге оказалось выключенный mod_rewrite :)

    Интересный блог, подписываюсь на твиттер ;)

  3. Помогите решить подобную проблему.
    Перенес сайт на хостинг mochahost.com. Кое-как все настроил.
    файлы .htaccess ( а они есть как в корне, так и в других каталогах) оставил старые.
    Сейчас работает главная страница, а все внутренние ссылки выдают HTTP Error 404. Не работают внутренние ссылки типа site.ru/collection/, а типа site.ru/test.php работают.
    Я не знаю как проверить работает ли mod_rewrite и .htaccess. На сервере стоит не apache, а что-то другое.

    Еще почти во всех файлах .htaccess указаны строки
    AuthUserFile /home/site/public_html/_vti_pvt/service.pwd
    AuthGroupFile /home/site/public_html/_vti_pvt/service.grp
    Может дело в них. Но я пробовал менять абсолютный путь – ничего не получается. Помогите, пожалуйста исправить.

      1. У них написано в суппорте: We do have support for mod_rewrite and .htaccess

        1. Это хорошо.
          Тогда закомментируйте (# в начале строки) в .htaccess все записи касающиеся аутентификации (AuthUserFile, AuthGroupFile).

          Да, на некоторых хостингах поддержка htaccess может включаться/выключаться через панель управления или же непосредственно в конфигурационных файлах сервера – стоит покопаться и там.

          1. А как вообще проверить работает ли .htaccess? Я пробовал написать правило

            RewriteRule ^test.html$ test.php?%{QUERY_STRING} [L]

            и вводить site.ru/test.html – ошибка 404, не перенаправляет
            site.ru/test.php – все нормально

            Последний тестовый .htaccess был такой:

            RewriteEngine On
            RewriteBase /
            RewriteRule ^index\.php$ – [L]
            RewriteRule ^test.html$ test.php?%{QUERY_STRING} [L]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . /index.php [L]

            1. Напиши одну строчку в корневом htaccess:

              Deny from All

              Если после этого при заходе на сайт будет выдаваться 403 ошибка, значит htaccess работает!

              1. Не работает. Сами посмотрите на http://ecollect.ru/
                А там сейчас Deny from All стоит
                Что посоветуете? В суппорт написал, толькл отвечают они 2 раза в день и то по-английски.

      2. А что не apache я решил, т.к. там нет к примеру httpd.conf

          1. Посмотрите сейчас на http://ecollect.ru/
            Не знаю какое поле смотреть. В самом верху
            System: Windows NT CWS11 6.1 build 7600

              1. Хорошо, буду разбираться.
                Большое спасибо за помощь!

  4. Благодарю! да часа ковырялся в конфиге, пока здесь строчку нужную не нашел. Огромный респект.

  5. Огромное спасибо! Очень полезная инфа. Помог :)

  6. Спасибо за листинг, все помогло, проблема решена:) *довольный*

  7. Мой хтаксес, после которого все заработало:

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

    # END WordPress

  8. А как настроить Апач так, чтобы визуальный редактор работал и некоторые плагины???