LINUX.ORG.RU

Апач срезает из HTTP_HOST префикс www.

 ,


0

2

Здравствуйте.

Имеется apache2

Имеется конфиг виртуалхоста

<VirtualHost *:80>
	ServerName site.ru
	AddDefaultCharset off
	DirectoryIndex index.html index.php
	DocumentRoot /var/www/site4/data/www/site.ru
	ServerAdmin andrey@site.ru
	SuexecUserGroup site site
	ServerAlias www.site.ru
	ScriptAlias /cgi-bin/ /var/www/site/data/www/site.ru/cgi-bin/
	ScriptAlias /php-bin/ /var/www/php-bin/site/
	AddHandler application/x-httpd-php5 .php .php3 .php4 .php5 .phtml
	Action application/x-httpd-php5 /php-bin/php
	CustomLog /var/www/httpd-logs/site.ru.access.log combined
	ErrorLog /var/www/httpd-logs/site.ru.error.log
	<FilesMatch "\.ph(p[3-5]?|tml)$">
		SetHandler application/x-httpd-php5
	</FilesMatch>
</VirtualHost>
<Directory /var/www/site/data/www/site.ru>
	AddHandler cgi-script .pl
	Options +ExecCGI
</Directory>

Заходим по адресу http://www.site.ru и видим сайт. Вроде бы всё ОК, но апач в переменную окружения кладёт не http://www.site.ru, а site.ru

Что

#!/usr/bin/perl
print "Content-type: text/html;\r\n\r\n";
print $ENV{HTTP_HOST}

что

<?php
echo $_SERVER["HTTP_HOST"]

кажет

site.ru

Что непорядок. Так как надо в .htaccss делать 301-й редирект http://www.site.ru->site.ru

Как быть?

☆☆☆

Ответ на: комментарий от mky

неа. Несмотря на то, что этот виртуалхост матчится по http://www.site.ru в переменную окружения должно попадать содержимое http-заголовока запроса.

HOST: www.site.ru

Иначе по вашей логике получается что для каждого алиаса сайта нужно новый виртуалхост создавать, а я таких костылей никогда не делал. Всегда указывал в ServerAlias все алиасы и именно они передавались в ENV{HTTP_HOST}, а не базовый ServerName. И это всегда работало. Такое ощущение, что это какая-то сборка апача кастомная.

r_asian ☆☆☆ ()

Извини за капитанство, но в .htaccess точно нет забытого рерайта/редиректа?

JaneDoe ()
Ответ на: комментарий от mky

Вопрос снят.

Дело в том, что А-запись site.ru и её CNAME http://www.site.ru показывают совсем на другой IP, а он в свою очередь сайт проксирует скорее всего с чет-то таким:

proxy_set_header Host site.ru;

r_asian ☆☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.