что произошло:
яндекс вебмастер стал ругаться на дубли страниц, title, description. Основными дублями были .php страницы и .html
(сам сайт написан на .php). rel canonical не помогает.
что хочу:
склеить .php и .html страницы и показывать только .html
что было сделано:
на днях внес изменения в .htaccess для того, чтобы был редирект 301 с .php на .html
код:
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} (.*)\.php
RewriteRule ^(.*)\.php $1.html [R=301,L]
RewriteCond %{THE_REQUEST} (.*)\.html
RewriteRule ^(.*)\.html $1.php [L]
из-за чего на почту стали приходить пустые данные с форм обратной связи
подскажите, как корректировать правило в .htaccess?
сам .htaccess
ErrorDocument 404 /error404.html
#редирект с www на без www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]
RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]
#убираем лишние слеши
RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
RewriteRule . %1/%2 [L,R=301]
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
#ставим с index.php на /
RewriteCond %{REQUEST_URI} ^/index$ [OR]
RewriteCond %{REQUEST_URI} ^/index[.]+(\w+)$
RewriteRule . / [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L]
# если файл не существует, будет вызван index.php
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule ^.*$ index.php [L]
# прячем ошибки php от посетителей
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
# с php на html
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} (.*)\.php
RewriteRule ^(.*)\.php $1.html [R=301,L]
RewriteCond %{THE_REQUEST} (.*)\.html
RewriteRule ^(.*)\.html $1.php [L]