Я изначально хотел, чтобы мои страницы работали с файлами и без них.
Вот как выглядел мой рабочий htaccess:
RewriteEngine On # .php to .html RewriteCond %{THE_REQUEST} \ /(.+)\.php[?\s] [NC] RewriteRule ^ /%1.html [L,R=301] # don't need extension on the end RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+?)/?$ $1.php [L] RewriteRule ^(.+)\.html/?$ $1.php [L,NC]
Я хотел бы обратить вспять вышеизложенное и заставить все страницы обращаться к .html. Я хотел бы включить 301 переадресацию для Google.
RewriteEngine on RewriteRule ^(.*)$ $1.php
Например, это будет правильно переписать example.com/test
в качестве запроса example.com/test.php
вы можете удалить оба расширения php html по следующему коду
<IfModule mod_rewrite.c> Options +MultiViews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ $1.php #RewriteRule ^([az]+)\/?$ $1.php [NC] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)$ $1.html #RewriteRule ^([az]+)\/?$ $1.html [NC] </IfModule>