Вот модифицированная версия, которая исправляет несколько проблем с вашим предложением.
Основное изменение заключается в том, что вам нужно повторно использовать capure $1
во втором правиле перезаписи:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^/?(.*)$ https://www.example.com/$1 [QSA,R=301]
Rewritecond %{HTTP_HOST} \.example\.net$
Rewriterule ^/?(.*)$ https://www.example.com/$1 [QSA,R=301]
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI}.php -f
RewriteRule ^/?([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 https://www.example.com/404
Обратите внимание, что я не проверял это сам, я применил только несколькоисправляет, глядя на это.
Этот набор правил также будет работать в конфигурации хоста http-сервера или в файле динамической конфигурации (".htaccess").Вы определенно должны предпочесть первый вариант, кроме случаев, когда у вас нет доступа к конфигурации (читай: дешевый хостинг-провайдер).
Очевидно, что модуль перезаписи необходимо загрузить и включить, и если вы решите использовать файл динамической конфигурации, позаботьтесь о том, чтобы он находился в папке host'd DOCUMENT_ROOT
и был доступен для чтения процессом http-сервера.,