RewriteRule ^(.*)!\.(css|js|png|jpg)$ http://local.example.com/us/$1 [R=302,L]
Шаблон RewriteRule
не будет соответствовать запрошенному URL (из-за ошибочного !
), поэтому эта директива фактически ничего не сделает. Из этого я также предполагаю, что вы хотите исключить запросы на файлы CSS, JS, .png
и .jpg
? У вас также есть условие, исключающее запросы к подкаталогу /blog/
, однако вы не упомянули об этом в своем вопросе?
Вы также ссылаетесь на повара ie в коде? Однако вы не упомянули об этом в своем вопросе, и он не будет работать в своем текущем состоянии (поскольку он не будет присутствовать при первоначальных запросах), поэтому я пока проигнорирую это.
Попробуйте вместо этого:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^local\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpg)$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule !^us/ /us%{REQUEST_URI} [R=302,L]
Вышеуказанные состояния, учитывая запрос для /foo/bar
...
- Для любого запроса, который не начинается с
/us/
- И для
Host
local.example.com
- И не для URL, который заканчивается либо
.css
, .js
, .png
или .jpg
- И не начинается с
/blog/
- Затем 302 (временный) перенаправляет на
/us/foo/bar
Если у вас нет нескольких хостов на этом аккаунте, вы не сможете не нужно явно проверять заголовок Host
как часть правила?