Настройте отображение домена вместо IP-адреса в адресной строке.

Вопрос или проблема

У меня установлена mediawiki на Ubuntu.

У меня применена следующая запись DNS:

A @ -> xx.xx.xx.xx

Мой файл .conf содержит следующее:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html
</VirtualHost>

Когда я перехожу на example.com в браузере, отображается экран Apache “It Works!”, а в адресной строке example.com.

Я изменил файл .conf на следующий и перезапустил apache2:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html/mediawiki
</VirtualHost>

Теперь при переходе на example.com в браузере происходит перенаправление на главную страницу вики, но адресная строка показывает xx.xx.xx.xx/mediawiki/index.php/Main_Page.

Как сделать, чтобы отображалось example.com/mediawiki/index.php/Main_Page вместо этого?

перенаправляет на

Скорее всего, перенаправление выполняется самим веб-приложением.

(Вместо относительного URL, такого как /mediawiki/index.php/Main_Page, вас перенаправляют на полный URL, например http://как-либо/mediawiki/index.php/Main_Page.)

Отредактируйте ваш LocalSettings.php и установите $wgServer на URL, который вы хотите использовать.

-Обновите MediaWiki LocalSettings.php

$wgServer
$wgServer = “http://example.com”;

-Настройка DNS
A @ -> xx.xx.xx.xx

  • Проверьте конфигурацию Apache
    <VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html/mediawiki

    <Directory /var/www/html/mediawiki>
    Options FollowSymLinks
    AllowOverride All
    Require all granted

    Убедитесь, что AllowOverride All включен для каталога, чтобы файлы
    .htaccess вступили в силу (важно для MediaWiki).
    -Перезагрузите Apache, чтобы изменения вступили в силу:
    sudo systemctl restart apache2
    -Включите перезапись URL
    sudo a2enmod rewrite
    -Создайте или обновите файл .htaccess в директории mediawiki, чтобы включить:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^xx.xx.xx.xx
    RewriteRule (.*) http://example.com/$1 [R=301,L]

-По желанию: Настройка HTTPS
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/

<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html/mediawiki

SSLEngine on
SSLCertificateFile /path/to/certificate.crt
SSLCertificateKeyFile /path/to/private.key

<Directory /var/www/html/mediawiki>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

sudo systemctl restart apache2

Ответ или решение

Чтобы решить проблему отображения IP-адреса в адресной строке вместо доменного имени в установке MediaWiki, выполненной на Ubuntu, важно последовательно проверить и настроить несколько компонентов. Речь идет о корректной настройке конфигурационных файлов Apache, MediaWiki и других связанных настройках системы. Давайте разберёмся, как это можно сделать, используя шаблон TEA (Theory, Example, Application).

Теория

Когда веб-приложение, такое как MediaWiki, выполняет перенаправление, оно должно делать это с использованием правильного доменного имени вместо IP-адреса. Перенаправления могут быть как непосредственной настройкой внутри самой MediaWiki, так и результатом неправильно настроенных конфигураций Apache, DNS, или .htaccess.

Ключевые аспекты настройки:

  1. Конфигурация Apache: Доменное имя должно быть четко указано в директиве ServerName. Настройки каталога должны позволять использование .htaccess, что означает необходимость указать AllowOverride All.

  2. Настройка MediaWiki: Переменная конфигурации $wgServer в LocalSettings.php должна быть установлена на правильное доменное имя, что гарантирует, что MediaWiki будет использовать его в своих размещённых URL.

  3. Перенаправление и переписывание URL: Через .htaccess можно настроить автоматическую замену IP-адреса на доменное имя. Это достигается с использованием модуля mod_rewrite в Apache.

  4. DNS-записи: Убедитесь, что DNS-записи правильно указывают на ваш IP-адрес.

Пример

Представьте, что у вас уже есть базовая конфигурация Apache и MediaWiki:

  1. Конфигурация Apache:

    <VirtualHost *:80>
       ServerName example.com
       DocumentRoot /var/www/html/mediawiki
    
       <Directory /var/www/html/mediawiki>
           Options FollowSymLinks
           AllowOverride All
           Require all granted
       </Directory>
    </VirtualHost>

    Здесь важно, чтобы ServerName был установлен как example.com.

  2. Конфигурация MediaWiki (LocalSettings.php):

    $wgServer = "http://example.com";

    Это гарантирует, что все внутренние ссылки, создаваемые MediaWiki, будут использовать доменное имя вместо IP-адреса.

  3. Конфигурация .htaccess:

    В файловой системе, в каталоге MediaWiki (например, /var/www/html/mediawiki), создайте или обновите файл .htaccess:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^xx\.xx\.xx\.xx
    RewriteRule (.*) http://example.com/$1 [R=301,L]

    Эти правила позволяют перенаправлять все запросы, адресованные непосредственно IP-адресу, на ваше доменное имя.

  4. Активация модуля переписывания URL:

    Убедитесь, что модуль переписывания URL активирован в Apache:

    sudo a2enmod rewrite
    sudo systemctl restart apache2
  5. DNS-записи:

    Убедитесь, что ваша действующая A-запись корректно указывает домен example.com на IP-адрес вашего сервера.

Применение

Теперь, имея настройку в теории и примеры корректно работающих конфигураций, эти принципы могут быть легко применены к вашему серверу.

  1. Перепроверка конфигурационных файлов: Убедитесь в правильности всех перечисленных выше конфигураций, это включает в себя проверку их актуальности.

  2. Тестирование страницы: После внесения изменений очистите кэш браузера и повторно проверьте открытие example.com. Важно удостоверится, что отображается именно доменное имя в адресной строке.

  3. Службы безопасности: Для повышения безопасности рассмотрите возможность введения HTTPS. Это можно сделать, настроив VirtualHost для 443 порта и применив SSL-сертификаты.

  4. Мониторинг и отладка: Используйте логи Apache (/var/log/apache2/error.log и /var/log/apache2/access.log), чтобы следить за возможными ошибками и проблемами при доступе к сайту.

Такой пошаговый подход поможет вам успешно настроить отображение доменного имени вместо IP в вашей системе. Это не только улучшит пользовательский опыт, но и повысит профессиональную презентацию вашего веб-ресурса.

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

Капча загружается...