Итак, проблема стояла следующая: Удалить из ссылки часть .html при помощи файла .htaccess. Зачем это понадобилось? Все началось с того, что я установил на этот блог плагин WP-Print (найти его можно в репозитории WordPress), который создает версию для печати к записи или странице. Как и было сказано в ридми к плагину, я выполнил следующие требования:
(1) В каталоге темы wp-content/themes/<YOUR THEME NAME>/ найти следующие файлы single.php, post.php, page.php, etc и т. п..
(2) В них найти строку:
<?php while (have_posts()) : the_post(); ?>
(3) После (2), в том месте где должна быть ссылка на версию для печати, вписать код:
<?php if(function_exists('wp_print')) { print_link(); } ?>
Ссылка появилась, но, увы, не заработала. Проблема нашлась быстро. Ссылки на все мои посты имели следующий вид:
http://kbaott.ru/nazvanie-novosti.html
А когда плагин WP-Print добавлял свою часть в ссылку получалось следующее:
http://kbaott.ru/nazvanie-novosti.html/print/
Конечно, такой баян не будет работать. К слову, регенерация пермалинков в админке WordPress (постоянные ссылки) не помогла. Поэтому пришлось постоянные ссылки менять на другую схему:
http://kbaott.ru/nazvanie-novosti/
Теперь плагин заработал, так как ссылки на печатную версию приняли вид:
http://kbaott.ru/nazvanie-novosti/print
Но открылась новая проблема — записи перестали отвечать на новые ссылки и выдавали 404 ошибку. Это очень неприятно, так как блог проиндексирован, да и на некоторые статьи есть внешние ссылки.
В решении проблемы помог великий и ужасный .htaccess. Все, на самом деле просто, в корне сайта нужно найти и открыть файл .htaccess (или создать его) и добавить в него следующие строки, заменяя при этом «ваш_сайт.ру» на настоящую ссылку на ваш сайт:
RewriteEngine on RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP RewriteRule ^([^.]+)\.html$ http://ваш_сайт.ру/$1 [R=301,L] RewriteCond %{REQUEST_URI} !(\.[^./]+)$ RewriteCond %{REQUEST_fileNAME} !-d RewriteCond %{REQUEST_fileNAME} !-f RewriteRule (.*) /$1.html [L]
После этого старые ссылки начинают работать — спокойно и тихо редиректят посетителя на ту же статью, только по новой ссылке.
Также есть другой способ .htaccess-редиректа, он короче, но не у всех работает:
REWRITECOND %{HTTP_HOST} ^ваш_сайт.ру [NC] REDIRECTMATCH 301 (.*)\.html$ http://ваш_сайт.ру$1
Надеюсь этот опыт кому-то пригодится, так как мне он очень помог!
Основная проблема борьбы со спамом заключается в том, что пользователи стали настолько тупыми, что их сложно отличить от спама.