Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как сделать 404 ошибку для страниц с параметрами?
Форумы портала PHP.SU » » Вопросы новичков » Как сделать 404 ошибку для страниц с параметрами?

Страниц (1): [1]
 

1. Salvinorine - 16 Мая, 2017 - 18:06:40 - перейти к сообщению
Проблема в том, что страница domain.ru/document.html отдает 200 по адресам вида domain.ru/document.html?id=1 и даже document.html/1
2. teleoperator27 - 16 Мая, 2017 - 18:20:37 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if($_SERVER['REQUEST_URI'] != "/document.html"){
  2.     header("Location: 404.html");
  3.     exit();
  4. };

так наверное
3. Salvinorine - 16 Мая, 2017 - 19:30:44 - перейти к сообщению
Сделал так:

PHP:
скопировать код в буфер обмена
  1. $pos = strpos($_SERVER['REQUEST_URI'], '?');
  2. $pos2 = strpos($_SERVER['REQUEST_URI'], '.html/');
  3. if ($pos === false and $pos2 === false) echo 'Ок';
  4. else NotFound();


Но это наверно такое себе решение.
4. teleoperator27 - 16 Мая, 2017 - 19:42:16 - перейти к сообщению
Я же написал как. Всего то надо сравнить две строки.
5. Salvinorine - 16 Мая, 2017 - 19:58:08 - перейти к сообщению
teleoperator27 пишет:
Я же написал как. Всего то надо сравнить две строки.


Дело в том, что таких документов много /document.html, надо универсальный вариант для всех.
6. Строитель - 16 Мая, 2017 - 21:07:39 - перейти к сообщению
Salvinorine, попробуйте так
PHP:
скопировать код в буфер обмена
  1. $url = 'http://ваш.сайт/';
  2.  
  3. if ($header = @get_headers($url, 1)) {
  4.     if (!empty($header['Location'])) {
  5.         header('Location: 404.html');
  6.         exit();
  7.     }
  8. }

 

Powered by ExBB FM 1.0 RC1