Здравствуйте. Имею код в htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# С http на https
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [L, R=301]
# Со страниц с окончанием .html на без .html и слешем на конце
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1/ [L, R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Но в данном варианте идет 2 переадресации, если попадается страница
http://site.ru/post
.html. Можно ли написать правило, чтобы это происходило за одну переадресацию?
P.S.: Временно пока сделал через php
$currect_url = $_SERVER['SCRIPT_URI'];
if ( strpos($currect_url, 'https') === false ) {
$currect_url = str_replace("http", 'https', $currect_url);
$check = true;
}
if ( strpos($currect_url, '.html') !== false ) {
$currect_url = str_replace(".html", '/', $currect_url);
$check = true;
}
if( isset($check) ){
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $currect_url);
exit();
}