@denism300

Как добавить / в конце адреса?

В файл .htaccess добавил правила:
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^(.*)$ $1/ [L,R=301]


все работает, кроме форм.
К примеру, есть форма с atcion="/registration?state=complete"
После нажатия на кнопку зарегистрироваться происходит редирект на главную, site.name/index.php и регистрация пользователя не происходит.
Если убрать эти правила:
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^(.*)$ $1/ [L,R=301]

то формы работают, но / в конец адреса, естественно, не добавляется.
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
Lakika
@Lakika
Sicario
Попробуйте добавить следующее правило в конец файла .htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

Оно будет перенаправлять все адреса, которые не заканчиваются на /, на адреса с / в конце. Это должно добавлять / в конце адреса, не затрагивая формы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы