[apache] изменение http статуса

Discussion in 'Windows' started by Raz0rnsk, 22 Apr 2011.

  1. Raz0rnsk

    Raz0rnsk New Member

    Joined:
    14 Jul 2009
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    здравствуйте.
    как настроить apache так, чтобы по дейсвующей ссылке на файл(или переход по ссылке на существующую страницу), например, выдавалось сообщение, что 404, не найдено (503 и вообще любой другой...)?

    не могу найти как такой механизм реализовать.
     
  2. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Тот-же вопрос....как сделать так - чтоб если странички не существует, сделать чтоб показывалась определённая страничка?!
     
  3. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    Raz0rnsk, а может проще будет с помощью ф-ии php http://php.net/manual/ru/function.header.php ?
    блок по браузеру:
    PHP:
    <?php
    if(preg_match("/Firefox/"$_SERVER[HTTP_USER_AGENT])) {
    header("HTTP/1.0 404 Not Found");
    //тут текст ошибки или редирект на главную
    //header("Location: /");
    exit(""); //текст ошибки можно добавить в exit
    }
    //в других браузерах выдаст "text"
    echo "text";
    ?>
    Osstudio, через .htaccess:
    с другова сайта
    ErrorDocument 404 http://site.com/404.html
    или со своего
    ErrorDocument 404 /404.html
    или показывать главную
    ErrorDocument 404 /
     
    _________________________
    #3 TANZWUT, 23 Apr 2011
    Last edited: 23 Apr 2011
  4. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    Raz0rnsk
    Code:
    <Files file.php>
    ErrorDocument 404 http://404page.ololo.com
     </Files>
    
    тут же можно и маски по расширению и именам задавать

    Osstudio
    Code:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^dir/.+\.(pl|cgi)$ redirects/index.php [L]
    
    если файла который реквестируют не существует и этот файл находится в директории dir/ с разширением pl или cgi - редирект на redirects/index.php
     
  5. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    В случае с .htaccess, страница указанная в ErrorDocument не должна содержать относительных путей, потому что может быть вызвана из любой директории сайта.
     
  6. Raz0rnsk

    Raz0rnsk New Member

    Joined:
    14 Jul 2009
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    ага
    а если я хочу, допустим, поставить сайт или его раздел на техобслуживание, чтобы по запросу выдавалось 503
    писать так?
    Code:
    <Directory /dir>
    ErrorDocument 503 /503.html
     </Directory>
    
     
  7. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Спасибо, работает =)