Tricky Apache Rewrite Push State + Добавление WWW

Чего я пытаюсь добиться, так это добавить (принудительно) 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}

person bendulum    schedule 10.10.2014    source источник


Ответы (1)


Следующие работы для меня сейчас

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}
person bendulum    schedule 10.10.2014