

Как заставить отдавать 404 ошибку все адреса заканчивающиеся на html
#1
Отправлено 04 Январь 2016 - 01:17
Можно ли через htaccess все статичные страницы заканчивающиеся .html заставить отдавать код 404?
Дело в том что весь хлам то я вычистил и при обращении к этим адресам joomla отдает 404 ошибку, но есть ряд адресов по которым joomla по непонятным мне причинам все же отдает 200ok.
У меня все настоящие урлы сейчас выглядят примерно так:
site.ru/kategotiya/stranica
а мне залили всякий хлам который нужно убрать из выдачи:
site.ru/aBRakadaBra.html
#2
Отправлено 04 Январь 2016 - 13:07
RewriteEngine On RewriteCond %{REQUEST_URI} /.*\.html$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?set_404=true [L]
Можно что-то типо такого, пример до рабочего вида вам еще попинать надо
#3
TC Отправлено 04 Январь 2016 - 17:14
#4
Отправлено 04 Январь 2016 - 19:40
#5
TC Отправлено 05 Январь 2016 - 14:40
Сейчас мой htaccess выглядит так
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F] # RewriteBase / RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_URI} !^/index\.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L]Sky, может подскажите как правильно сделать, с учетом уже имеющихся записей?
#6
TC Отправлено 07 Январь 2016 - 00:26
<Files "*.html"> deny from all </Files>
#7
Отправлено 13 Январь 2016 - 01:45
RewriteEngine on
RewriteRule ^404/$ /*.html [L]
а потом
ErrorDocument 404 http://путь/404
не прокатит? если что, сильно не ржать)
Сообщение отредактировал asssa: 13 Январь 2016 - 02:13
#8
Отправлено 14 Январь 2016 - 00:44
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule \.html$ /index.php?set_404=true [L]И все это до остальных прописей, сразу после RewriteEngine on
#9
TC Отправлено 14 Январь 2016 - 11:05
правда заработало вот в таком варианте
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F] # RewriteBase / RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_URI} !^/index\.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule \.html$ /index.php?set_404=true [L] RewriteRule .* index.php [L]
а если делал как вы сказали
#10
Отправлено 14 Январь 2016 - 18:42
все лишнее запрещаем в роботсе, благо тут шаблонно катит ..
а все обработки только скриптами!
если все верно сделано, то после удаления мусора и должно быть 404.
монетизация с ссылок: тут и тут
...
успевает тот, кто не спешит (с)
#11
TC Отправлено 14 Январь 2016 - 18:53
Почему joomla так себя ведет я не знаю, но вижу по логам, что гугл до сих пор обращается к этим страницам.
#13
TC Отправлено 15 Январь 2016 - 10:43
Update: Cейчас выяснилось что я не могу попасть в админку, которая как обычно у joomla находится по адресу site.ru/administrator/
#14
Отправлено 15 Январь 2017 - 16:55
#15
Отправлено 15 Январь 2017 - 23:30
Как бы я не пытался выпилить его из яндекса, он всё равно его индексирует. В предыдущей иттерации отдавал в header 404, а потом (вот тут ошибка была) header'ом location менял на страницу ошибки 404 (в итоге заголовок менялся и код был 302, перемещён временно).
В итоге яндекс вебмастер пару лет постоянно у меня индексировал снова и снова эти страницы, в надежде что они вернутся.
Делал в начале через .htaccess, но это для маньяков. Нечитаемый вид и одна ошибка и слетает куча правил. Сделал в index.php (у меня cms drupal, запросы идут через index.php все):
<?php $thispathtmp = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (strpos($thispathtmp, "base=") !== false) { header("HTTP/1.1 410 Gone"); die(); } if (strpos($thispathtmp, "newsid=") !== false) { header("HTTP/1.1 410 Gone"); die(); } if (strpos($thispathtmp, "&id=") !== false) { header("HTTP/1.1 410 Gone"); die(); } if (strpos($thispathtmp, "&text=") !== false) { header("HTTP/1.1 410 Gone"); die(); }
Ну и делаю сейчас через 410 ответ сервера, удалён навсегда.
Результат на скрине, но думаю ещё 1-2к страниц должно уйти.
Похожие темы
Получить частотку Вордстата по apiАвтор protector, 05 апр. 2023 |
|
![]() |
||
Как определить тематику страницы сайтаАвтор protector, 08 нояб. 2022 |
|
![]() |
Также с тегом 404, html
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных
По вопросам рекламы на форуме и цены на рекламу
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.