Чего я пытаюсь добиться, так это добавить (принудительно) WWW перед моими URL-адресами состояния push, когда его нет.
Я попытался ознакомиться с переписыванием и огляделся в поисках возможных решений. Также пробовал много вариантов на моей локальной машине. Как-то я не так понимаю.
Вот что у меня есть, что работает (внутри моего файла httpd.conf)
RewriteEngine On
RewriteCond %{REQUEST_URI} !emails/*
RewriteCond %{REQUEST_URI} !icons/*
RewriteCond %{REQUEST_URI} !src-svg/*
RewriteCond %{REQUEST_URI} !svg/*
RewriteCond %{REQUEST_URI} !css/*
RewriteCond %{REQUEST_URI} !tmpl/*
RewriteCond %{REQUEST_URI} !js/*
RewriteCond %{REQUEST_URI} !img/*
RewriteCond %{REQUEST_URI} !crawl/*
RewriteCond %{REQUEST_URI} !config/*
RewriteRule ^(.+)$ /index.php/$1 [L]
Я пытался удалить последнюю [L] и добавить разные варианты этих строк или написать правило одной строкой, но безрезультатно.
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Таким образом, хитрость будет заключаться в том, чтобы добавить WWW и молча указать браузеру файл index.php (который представляет мое одностраничное приложение, использующее состояние push). Имена каталогов, перечисленные в первом блоке кода, должны быть исключены из правила index.php и не могут получать WWW.
Спасибо за любой вклад!
ИЗМЕНИТЬ
У меня есть следующее сейчас, которое, кажется, работает до сих пор. Кажется, виноваты какие-то флаги. Это верный подход?
RewriteEngine On
RewriteCond %{REQUEST_URI} !emails/*
RewriteCond %{REQUEST_URI} !icons/*
RewriteCond %{REQUEST_URI} !src-svg/*
RewriteCond %{REQUEST_URI} !svg/*
RewriteCond %{REQUEST_URI} !css/*
RewriteCond %{REQUEST_URI} !tmpl/*
RewriteCond %{REQUEST_URI} !js/*
RewriteCond %{REQUEST_URI} !img/*
RewriteCond %{REQUEST_URI} !crawl/*
RewriteCond %{REQUEST_URI} !config/*
RewriteRule ^(.+)$ /index.php/$1
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI}