.htaccess - строка в URL без подпапки - PullRequest
0 голосов
/ 20 марта 2020

URL-адрес следующий http://local.example.com/features.html, и мне нужно добавить текст, например, "страна" http://local.example.com/us/feature.html, но с кодом, который у меня есть, когда я нажимаю на URL, сайт показывает ошибку 404

Это только визуально без создания подпапки США.

Код ...

RewriteEngine On
RewriteCond %{HTTP_HOST} local.example.com$ [NC]
RewriteCond %{HTTP_COOKIE} location=us [NC] --> CHECK COOKIE FOR ACTION
RewriteCond %{REQUEST_URI} !^/us/  --> EXCLUDE US FOR REDIRECT LOOP
RewriteCond %{REQUEST_URI} !^/blog/ --> EXCLUDE BLOG FOLDER WITH WORDPRESS
RewriteRule ^(.*)!\.(css|js|png|jpg)$ http://local.example.com/us/$1 [R=302,L]

1 Ответ

1 голос
/ 21 марта 2020
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 ...

  1. Для любого запроса, который не начинается с /us/
  2. И для Host local.example.com
  3. И не для URL, который заканчивается либо .css, .js, .png или .jpg
  4. И не начинается с /blog/
  5. Затем 302 (временный) перенаправляет на /us/foo/bar

Если у вас нет нескольких хостов на этом аккаунте, вы не сможете не нужно явно проверять заголовок Host как часть правила?

...