301 перенаправление с www.domain.com/index.html на www.domain.com не работает - PullRequest
0 голосов
/ 18 мая 2011

В конфигурационном файле 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.

Может кто-нибудь разрешить это для меня ...

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 18 мая 2011

Добавить

ServerAlias www.domain.com

в новый ряд после ServerName domain.com

0 голосов
/ 19 мая 2011

Обычно это достигается с помощью более общего подхода с 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 )

0 голосов
/ 18 мая 2011

Звучит так, как будто он применяет первое перенаправление перед попыткой второго.Вы пытались поместить линии Redirect в другом порядке?

  Redirect 301 /index.html http://www.domain.com/
  Redirect 301 / http://www.domain.com/
...