Порядок выполнения в файле htaccess

207
28 июля 2021, 01:50

Имеем такой файл htaccess

Options -Indexes 
ErrorDocument 404 /404.php
Redirect 301 /old_adress /new_address_/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]

RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule (.*) %1/%2 [R=301,L]

сверху стоит редирект со старой страницы на совершенно другую, при этом у старой на конце не было слеша.

Ниже есть конструкция, которая добавляет слеш во все адреса, где его нет

И в итоге мы получаем что переходя по старой ссылке человека кидает на страницу /new_address_//

Для удаления этих слешей добавлена последняя запись

Вопрос в том, что почему вторая запись редиректа с добавлением слеша выполняется раньше редиректа со старой страницы.

Т.е. сначала идет редирект с /old_adress на /old_adress/ Потом по правилу /old_adress заменяет на /new_address_/ и т.к. у нас уже появился слеш на конце то в конце уже 2 слеша

READ ALSO
Реализация двух билдеров в одном классе

Реализация двух билдеров в одном классе

Пытаюсь реализовать два билдера для двух разных наборов параметров (тип набора определяется по полю type)

172
Spring Security возвращает ошибку 405 Request Method 'POST' Not Supported

Spring Security возвращает ошибку 405 Request Method 'POST' Not Supported

Я использую Spring Security и Spring MVC в своем проекте, и я пытаюсь сделать страницу авторизации, но, к сожалению, при нажатии на кнопку "Log in", появляется...

244
Удаление элемента из ArrayList Java

Удаление элемента из ArrayList Java

У меня есть класс Worker и форма расчета ЗП

224
нужно найти месторасположение файла, по его названию

нужно найти месторасположение файла, по его названию

есть имя файла Chrome, нужно только по его названию, найти где файл находится

186