Я работаю над перенаправлениями для веб-сайта, для которого все страницы должны иметь https и www, а также удалить расширение из любого файла .php.
Мне удалось управлять https + www только в одном перенаправлении, но я не уверен, смогу ли я включить строку удаления .php в одно предложение и объединить все в одном перенаправлении.
#HTTPS + WWW
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,NE,L]
## To internally rewrite /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
В настоящее время любой внутренний конец файла с расширением ".php" должен пройти два разных перенаправления для соответствия требованиям.
http://example.com/file.php> https://www.example.com/file.php> https://www.example.com/file
Есть ли способ сделать это одним перенаправлением? Идея состоит в том, что он все еще работает для всего остального в домене, но если файл заканчивается на .php, он перенаправляется на не .php