За последние 24 часа нас посетили 21524 программиста и 1699 роботов. Сейчас ищут 1957 программистов ...

.htacccess | Вывод ошибки 404 при запросе файла

Тема в разделе "Прочие вопросы по PHP", создана пользователем Вованыч, 29 июл 2009.

  1. Вованыч

    Вованыч Активный пользователь

    С нами с:
    18 дек 2008
    Сообщения:
    12
    Симпатии:
    0
    Нужно сделать, чтобы при запросе файла blog.php выдавало 404 ошибку.
    Но! В .htacccess у меня уже есть правило:
    Код (Text):
    1. RewriteRule ^blog(/.*)?$ blog.php [L]
    И мои попытки сделать что-то типа:
    Код (Text):
    1. RewriteRule blog.php [404,L]
    при запросе /blog[...] так же выдают 404 ошибку, что как бы и правильно, тк в первом правиле указано что при таком запросе запускать blog.php

    Как реализовать?
     
  2. sukharevd

    sukharevd Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    Kiev
    Вы подключаете blog.php через include или require. Но вы хотите, чтобы не было доступа к этому файлу из браузера напрямую. Если я вас правильно понял, предлагаю следующий вариант заглушки:
    PHP:
    1. <?php
    2. if(!isset($_GET['a'])) {
    3.     header("HTTP/1.0 404 Not Found");
    4. } else {
    5.     // собственно содержимое blog.php.
    6. }
    7. ?>
    где вместо $_GET['a'] может быть любая другая переменная, которая будет признаком того, что blog.php используется как нужно.
     
  3. Вованыч

    Вованыч Активный пользователь

    С нами с:
    18 дек 2008
    Сообщения:
    12
    Симпатии:
    0
    Нет, неправильно поняли :) RewriteRule ^blog(/.*)?$ blog.php [L] - это ни include и не require. PHP тут вообще не должен быть задействован.
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Код (Text):
    1. [L,R=404]
    ?
     
  5. Вованыч

    Вованыч Активный пользователь

    С нами с:
    18 дек 2008
    Сообщения:
    12
    Симпатии:
    0
    А в чём различие от [404,L] в моём случае?
     
  6. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Я тут покопался немного и что-то нашёл:
    Код (Text):
    1. RewriteEngine On
    2.  
    3. RewriteCond %{THE_REQUEST} " /blog\.php "
    4. RewriteRule .* 404-whatever
    5.  
    6. RewriteRule blog(/.*)?$ blog.php
     
  7. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    В том, что 404 это значение, а не флаг.