В конфигурационном файле apache (т.е. httpd.conf) у нас была конфигурация виртуального хоста, которая работает последние 2 года. Сегодня нет никаких проблем с этим. Но когда меня попросили добавить к нему перенаправление, это не работает. Мой виртуальный хостер выглядит примерно так
<VirtualHost *:80> DocumentRoot /var/www/html ServerName domain.com Redirect 301 / http://www.domain.com/ Redirect 301 /index.html http://www.domain.com/ </VirtualHost>
Здесь, когда я набираю "http://domain.com", это приводит к" http://www.domain.com" ожидаемому поведению. Но когда я набираю "http://domain.com/index.html" или" http://www.domain.com/index.html", это не приводит меня к "http://www.domain.com". .. это веб-сайт joomla.
Может кто-нибудь разрешить это для меня ...
Заранее спасибо
Добавить
ServerAlias www.domain.com
в новый ряд после ServerName domain.com
ServerName domain.com
Обычно это достигается с помощью более общего подхода с mod_rewrite:
Этот код должен быть помещен в файл htaccess в корне вашего домена, т.е. domain.com/.htaccess или в конфигурации virtualhost.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^domain\.com$ RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] </IfModule>
(например, также здесь Принудительный префикс www с помощью PHP / htaccess / mod_rewrite )
Звучит так, как будто он применяет первое перенаправление перед попыткой второго.Вы пытались поместить линии Redirect в другом порядке?
Redirect 301 /index.html http://www.domain.com/ Redirect 301 / http://www.domain.com/