301 Redirect Dynamic HOST включает DOCUMENT_ROOT - PullRequest
0 голосов
/ 17 февраля 2012

Основываясь на том, что я прочитал на Apache, я использовал приведенный ниже пример для перенаправления 301 на всех моих веб-сайтах.

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

Это не совсем работает, как они сказали, что будет. Если я попытаюсь www.domain.com это работает. Если я попробую domain.com, я получу www.domain.com//home/www/public_html/www.domain.com

Похоже, он хочет включить DOCUMENT_ROOT в перенаправление. Мне лучше создать индивидуальный .htaccess для каждого веб-сайта?

Что быстрее запустить - Apache или HTACCESS?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012

Попробуйте вместо этого. Убедитесь, что вы включили RewriteBase /

RewriteEngine on
RewriteBase / 

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Если вы все еще получаете старый результат, ваш предыдущий редирект 301, вероятно, кэшируется , повторите тестирование в режиме приватного просмотра (в режиме инкогнито).

0 голосов
/ 17 февраля 2012

Использование Apache httpd.conf быстрее, поскольку доступ к файлу .htaccess добавляет небольшие накладные расходы - Apache проверяет каждый каталог - и родительский каталог - на наличие файла, и он будет загружаться для каждого запроса.

Использование httpd.conf лучше, когда у вас есть доступ к нему.Используйте .htaccess, если у вас нет доступа к основному файлу конфигурации.

...