master11 6 Posted August 22, 2014 Report Share Posted August 22, 2014 Страницы с произвольными параметрами обрабатываются некорректно, при запросе подобных адресов http://Nanofakt.ru/?qwerty123456 сервер отдает ответ HTTP/1.1 200 OK. Необходимо настроить ответ сервера HTTP/1.1 404 Not Found для подобных страниц. ПОдскажите как все это дело настроить? Link to post Share on other sites
cema93 50 Posted August 22, 2014 Report Share Posted August 22, 2014 какая CMS? родной Wordpress.... Link to post Share on other sites
poiskhd 61 Posted August 22, 2014 Report Share Posted August 22, 2014 И для юкоза если можно так же подскажите . Link to post Share on other sites
master11 6 Posted August 22, 2014 Author Report Share Posted August 22, 2014 Родной WordPress Версия 3.9.2 Link to post Share on other sites
uskaman 39 Posted August 22, 2014 Report Share Posted August 22, 2014 Не легче canonical прописать? Эти страницы вроде считаются как дубли Link to post Share on other sites
master11 6 Posted August 22, 2014 Author Report Share Posted August 22, 2014 Не легче canonical прописать? Эти страницы вроде считаются как дубли Не в этом проблема. Проблема с canonical все правильно... Link to post Share on other sites
master11 6 Posted August 22, 2014 Author Report Share Posted August 22, 2014 Я переписывался со службой поддержкой хостинга мне сказали "Потестировали и видно, что у вас скриптвозвращает index.php на любую несуществующую страницу, а должна бытьстраница 404. Проверяйте в плагинах не установлено ли подобного или вкоде темы" Вот не знаю в каком файле нужно покопаться...Месяц назад было все нормально...Пока в шаблоне не поковырялся...Вот что сделал уже не помню... Link to post Share on other sites
master11 6 Posted August 22, 2014 Author Report Share Posted August 22, 2014 Есть три варианта из-за чего это могло быть: Ставил плагин суперкеш, закрывал от индексации в файле роботс календарь и поставил скрипт какой-то, либо что-то с редиректом! Все больше ничего. У кого мысли есть? Link to post Share on other sites
uskaman 39 Posted August 22, 2014 Report Share Posted August 22, 2014 Все у вас правильно функционирует. После вопросительного знака задаются переменные. Т.е. будет отображаться страница, которая задана до "?". Просто пропишите canonical. P.S. попробуйте на любую страницу любого сайта написать каракули после "?". Отобразится та же страница. Link to post Share on other sites
boav 13 Posted August 23, 2014 Report Share Posted August 23, 2014 Я вот так сделал и работает: <? $goodparams = array_flip(array('name', 'op', 'go', 'cat', 'func', 'gid', 'type', 'lid', 'pagenum', 'do', 'orderby', 'pid', 'file', 'us_name', 'num', 'pagenum', 'id', 'sid', 'satid', 'min', 'cid', 'sortby', 'show', 'new_topic', 'as', 'catid', 'utm_source', 'utm_medium', 'post', 'sa', 'year', 'month', 'month_l', 'user_name', 'type', 'd', 'new', 'ran', 'top', 'url', 'word', 'best', 'hits')); //массив "хороших" параметров думаю ты догадаешься что здесь писать) foreach ($_GET as $param => $value) { if (!isset($goodparams[$param])) { header("HTTP/1.0 404 Not Found"); //безболезненно отдаем 404 ошибку, //что отнюдь не мешает нам показать юзерю контент break; } } ?> Врубаешь в шапке где нужно проверять и готово! Link to post Share on other sites
master11 6 Posted August 23, 2014 Author Report Share Posted August 23, 2014 Все у вас правильно функционирует. После вопросительного знака задаются переменные. Т.е. будет отображаться страница, которая задана до "?". Просто пропишите canonical. P.S. попробуйте на любую страницу любого сайта написать каракули после "?". Отобразится та же страница. У меня нет проблем с дублями и т.д. Проблема не в canonical там все правильно...При запросе к несуществующей странице отдается неверный статус код!(Вот в чем проблема) Link to post Share on other sites
Esite 83 Posted August 23, 2014 Report Share Posted August 23, 2014 Добавьте просто строчку в .htaccess Errordocument 404 /404.php И залейте в корень файл 404.php и ответ сервера будет корректный. В качестве примера дам свой старенький и всегда рабочий 404. <?php header('Content-type: text/html; charset=utf-8'); header("HTTP/1.0 404 Not found"); $url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $url = urldecode ($url); $her = <<<HER <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8" /> <title>404 Not found</title> <style> body, * { margin:0; padding:0; } #cont { width:800px; margin:100px auto 40px auto; padding:20px; border:1px dotted #555; background:#FFFFCC; } h1 { font:normal 24px Arial; color:#CC3333; padding-bottom:15px; } p { font:normal 19px Arial; color:#888; } p .url , p a:hover{ color:#CC3333; border:1px solid transparent; border-bottom:1px solid #CC3333; padding:2px 4px 2px 4px; } .url:hover { cursor:help; background:#fff; border:1px dashed #CC3333; } p a { text-decoration:none; border-bottom:1px dotted #0000CC; color:#0000CC; } </style> </head> <body> <div id="cont"> <h1>Ошибка 404</h1> <p>Запрашиваемая страница <span class="url" title="Такой страницы нет на сайте!">$url</span> не существует или была удалена.</p> </div> <p style="text-align:center;"><a href="/">Перейти на главную страницу сайта</a></p> </body> </html> HER; echo $her; Link to post Share on other sites
master11 6 Posted August 23, 2014 Author Report Share Posted August 23, 2014 Добавьте просто строчку в .htaccess Errordocument 404 /404.php И залейте в корень файл 404.php и ответ сервера будет корректный. В качестве примера дам свой старенький и всегда рабочий 404. <?php header('Content-type: text/html; charset=utf-8'); header("HTTP/1.0 404 Not found"); $url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $url = urldecode ($url); $her = <<<HER <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8" /> <title>404 Not found</title> <style> body, * { margin:0; padding:0; } #cont { width:800px; margin:100px auto 40px auto; padding:20px; border:1px dotted #555; background:#FFFFCC; } h1 { font:normal 24px Arial; color:#CC3333; padding-bottom:15px; } p { font:normal 19px Arial; color:#888; } p .url , p a:hover{ color:#CC3333; border:1px solid transparent; border-bottom:1px solid #CC3333; padding:2px 4px 2px 4px; } .url:hover { cursor:help; background:#fff; border:1px dashed #CC3333; } p a { text-decoration:none; border-bottom:1px dotted #0000CC; color:#0000CC; } </style> </head> <body> <div id="cont"> <h1>Ошибка 404</h1> <p>Запрашиваемая страница <span class="url" title="Такой страницы нет на сайте!">$url</span> не существует или была удалена.</p> </div> <p style="text-align:center;"><a href="/">Перейти на главную страницу сайта</a></p> </body> </html> HER; echo $her; Скажите куда именно добавить строку "Errordocument 404 /404.php" ВОт мой сам .htaccess # BEGIN McHost Redirect 301 /admin/ /wp-admin/ # END McHost # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress Link to post Share on other sites
Esite 83 Posted August 23, 2014 Report Share Posted August 23, 2014 Вроде в любое место добавить можно, попробуйте после # END McHost # BEGIN McHost Redirect 301 /admin/ /wp-admin/ # END McHost Errordocument 404 /404.php # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 Вроде в любое место добавить можно, попробуйте после # END McHost # BEGIN McHost Redirect 301 /admin/ /wp-admin/ # END McHost Errordocument 404 /404.php # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress Ничего не изменилось, моя проблема Не Решилась!!! Кто еще чем сможет подсказать? Link to post Share on other sites
arakas 7 Posted August 25, 2014 Report Share Posted August 25, 2014 да проблемы как таковой и нету... откуда возьмутся ссылки вида Nanofakt.ru/?qwerty123456 , если ты их сам не будешь плодишь как например в первом сообщении. Навряд ли конкуренты будут подобным образом на сайт ссылки делать. А если движок подобную чушь генерирует, то надо движок а править, а не костыли вставлять. Если уж делать нечего, то делай как boav посоветал со списком разрешенных параметров. Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 Вы не поняли дело то не в ссылках!!! Проблема в ответе сервера на ошибку 404 должна быть ошибка 404 а сервак выдает код 200!!! Вот в этом вся проблема!!! Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 Вот эту мне нужно проблему решить ошибка 200 а должна 404 Link to post Share on other sites
DeimosFobos 34 Posted August 25, 2014 Report Share Posted August 25, 2014 master11, сервер не выдает 404 т.к ваш код ее не выдает, если вы хотите 404, найдите места в коде которые генерируют контент и пропишите там условия.просто вордпрес с этим не замарачивался: http://wordpress.com/?hola=1&dfsdfsd=2&rrrr=3 Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 Вот я и хочу узнать какой код и куда прописать...Какой файл нужно править? Link to post Share on other sites
arakas 7 Posted August 25, 2014 Report Share Posted August 25, 2014 Вы не поняли дело то не в ссылках!!! Проблема в ответе сервера на ошибку 404 должна быть ошибка 404 а сервак выдает код 200!!! Вот в этом вся проблема!!! так бы сразу и написал. у тебя страница nanofakt.ru/404.php отдает 200 код. В вордпресе особо не разбираюсь. но попробуй в самом вверху 404.php прописать header("HTTP/1.0 404 Not Found"); либо в условии где вызывается данный файл. Link to post Share on other sites
UnFeeLing 57 Posted August 25, 2014 Report Share Posted August 25, 2014 https://wordpress.org/plugins/genesis-404-page/ Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 так бы сразу и написал. у тебя страница nanofakt.ru/404.php отдает 200 код. В вордпресе особо не разбираюсь. но попробуй в самом вверху 404.php прописать header("HTTP/1.0 404 Not Found"); либо в условии где вызывается данный файл. Попробовал ....прописал не помогает...Ответ сервера все равно 200 Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 @UnFeeLing, Ошибка 404 у меня корректна речь идет не об этом... Речь идет об ответе 200 от сервака а должно быть 404 Link to post Share on other sites
master11 6 Posted August 25, 2014 Author Report Share Posted August 25, 2014 Все ребята проблему решил, тему можно закрывать! Во всем виноват плагин Customize your 404 Error Page for Wordpress! Всем спасибо! Link to post Share on other sites
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now