Назад | Перейти на главную страницу

Mod_rewrite не работает на сервере ISPConfig 3

Проблема

Недавно я перенес сайт Drupal с общего хостинга на свою виртуальную машину. Кажется, все работает правильно, кроме чистых URL-адресов.

Моя настройка ВМ

Что я пробовал

Прочитав несколько форумов по drupal, я попробовал следующее в этом порядке

  1. Убедитесь, что mod_rewrite установлен и включен
  2. Изменен PHP с FastCGI на Mod_PHP (предпочитаю использовать FastCGI или suPHP, хотя во избежание наличия папок tmp / files с разрешениями 777)
  3. Изменен тип перенаправления на L в ISPConfig Sites-> domain.com-> Redirect
  4. Изменен / etc / apache2 / sites-enabled / 000-default

    <Directory /var/www/> 
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        ...
    </Directory>
    

Не уверен насчет пунктов 3 и 4, хочу все домены, чтобы иметь возможность использовать mod_rewrite из коробки.

Вопрос

Я сделал что-то не так или пропустил шаг? В конечном итоге я хотел бы использовать FastCGI и чистые URL-адреса, работающие на всех доменах ISPConfig 3, без необходимости вносить какие-либо изменения в настройки отдельных доменов.

Любые идеи приветствуются, я попробую их все.

Руководство ISPConfig 3 говорит:

Быстрый CGI:

Преимущества:

  • Скрипты будут выполняться с правами пользователя веб-сайта;
  • Более одной версии PHP можно запускать как FastCGI;
  • Может быть лучше по скорости по сравнению с CGI и suPHP.

Недостатки:

  • Значения php.ini нельзя изменить с помощью сценариев PHP, файлов vhost, файлов .htaccess. Но можно использовать Пользовательские настройки php.ini поле на Параметры вкладка веб-сайта в ISPConfig, чтобы указать пользовательские настройки php.ini (см. раздел 4.6.1.1).

Вместо файла .htaccess используйте директивы Apache ISPConfig:

Сайт -> Веб-сайт -> Веб-домен -> вкладка Параметры

Директивы Apache:

DirectoryIndex index.php

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

Drupal 6 INSTALL.txt говорит:

Если тема Drupal по умолчанию не отображается должным образом и ссылки на странице приводят к ошибке «Страница не найдена», попробуйте вручную установить переменную $ base_url в файле settings.php, если она еще не установлена. В настоящее время известно, что серверы с FastCGI могут столкнуться с проблемами, если переменная $ base_url не закомментирована (см. http://bugs.php.net/bug.php?id=19656).

Вкладка перенаправления в ISPConfig предназначена только для перенаправления домена, а не для конкретного приложения, такого как Drupal '.

Вы проверяли, распознаются ли файлы .htaccess как директивы?

Вы должны найти подобное в глобальной конфигурации apache2.