Apache удаляет последнюю косую черту перед "? Param = value"

Я пытался это сделать, но смог найти ответы только на то, чтобы убрать последнюю косую черту в URL-адресе без параметров запроса. В основном я хочу добиться этого

Мой исходный URL: https://example.com/node/?id=10

И я хочу преобразовать его в это: https://example.com/node?id=10

Возможно ли это как-то с помощью mod_rewrite или чего-то подобного?

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
104
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать это правило перенаправления, чтобы удалить каталог из не-каталогов, не влияя на строку запроса:

RewriteEngine On

# if not a directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=301,L]

Отлично, большое спасибо за решение - отлично сработало

Razvan Ilin 30.05.2018 20:38

Вы можете попробовать, если это соответствует вашим потребностям:

Содержание .htacccess:

RewriteEngine On
RewriteBase /
DirectorySlash Off

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(\?.*)?$ $1$2 [R=301,L]

Я провел только быстрый тест на https://htaccess.madewithlove.be/, и, похоже, он работает должным образом.

Другие вопросы по теме