Назад | Перейти на главную страницу

Apache2 продолжает перенаправлять

Я пытаюсь сохранить пользователя на URL-адресе www.mydomain.de, но Apache использует перенаправление 301 Permament Redirect на mydomain.de. Как я могу предотвратить это?

httpd.include для виртуального хоста

<VirtualHost xx.xx.xx.xx:80>
    ServerName   mydomain.de:80
    ServerAlias   www.mydomain.de
    UseCanonicalName off
    SuexecUserGroup         mydomain psacln
    ServerAdmin  "info@mydomain.de"
    DocumentRoot /var/www/vhosts/mydomain.de/httpdocs
</VirtualHost>

Настройки DNS

    ; *** This file is automatically generated by Plesk ***
    $TTL    86400

    @       IN      SOA     ns.mydomain.de. info.mydomain.de. (
                            1246541440      ; Serial
                            10800   ; Refresh
                            3600    ; Retry
                            604800  ; Expire
                            360 )   ; Minimum

    mydomain.de.           IN NS   ns.mydomain.de.
    mydomain.de.              IN NS   ns2.hans.hosteurope.de.
    ns.mydomain.de.                IN A    92.51.134.24
    mydomain.de.           IN A    92.51.134.24
    webmail.mydomain.de.           IN A    92.51.134.24
    mail.mydomain.de.              IN A    92.51.134.24
    science.mydomain.de.           IN A    92.51.134.24
    test.mydomain.de.              IN A    92.51.134.24
    testing.mydomain.de.           IN A    92.51.134.24
    ftp.mydomain.de.               IN CNAME        mydomain.de.
    www.mydomain.de.               IN CNAME        mydomain.de.
    *.webmail.mydomain.de.                 IN CNAME        mydomain.de.
    mydomain.de.           IN MX  10 mail.mydomain.de.
    mydomain.de.           IN TXT  "v=spf1 +a +mx -all"

Есть идеи, почему это происходит? Спасибо!

Изменить: спасибо Chaos за ваш ввод (пока не могу проголосовать за ваш ответ), но, к сожалению, это все еще не работает.

Выход Fiddler2

GET / HTTP/1.1
Accept: */*
Accept-Language: de
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 4.0.20506; InfoPath.2; .NET CLR 3.0.30729)
Host: www.mydomain.de
Proxy-Connection: Keep-Alive


HTTP/1.0 301 Moved Permanently
Date: Thu, 02 Jul 2009 18:38:34 GMT
Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_python/3.3.1 Python/2.5.2 PHP/5.2.10 mod_perl/2.0.3 Perl/v5.8.8
X-Powered-By: PHP/5.2.10
X-Pingback: http://mydomain.de/xmlrpc.php
Location: http://mydomain.de/
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Cache: MISS from dezntpx01.computacenter.de
X-Cache-Lookup: MISS from dezntpx01.computacenter.de:8081
X-Cache: MISS from dezntpx03.computacenter.de
X-Cache-Lookup: MISS from dezntpx03.computacenter.de:8081
Via: 1.0 dezntpx01.computacenter.de:8081 (squid/2.7.STABLE5), 1.0 dezntpx03.computacenter.de:8081 (squid/2.7.STABLE5)
Connection: keep-alive
Proxy-Connection: keep-alive

Ну, во-первых, это:

ServerName   mydomain.de:80
ServerAlias   www.mydomain.de

должно быть это:

ServerName    www.mydomain.de
ServerAlias   mydomain.de

UseCanonicalName наверное, тоже должен быть включен. Если вы хотите сохранить их в одной версии сайта, это поможет вам, а не вредит.

редактировать: Хорошо, проблема в том, что ваш сервер Apache даже не контролирует поведение, которое вы видите; прокси, с которым вы разговариваете. Почему он решает выполнить редирект 301, не ясно, но, возможно, это связано с тем, что www.mydomain.de это CNAME запись. Я бы попробовал сделать это A запись.

Прокси-серверу также может потребоваться некоторое время, чтобы заметить все, что вы делаете, и отрегулировать свое поведение. Насколько я знаю, на нем также могут быть настроенные правила, которые говорят ему убрать www из вашего домена.