Apache удаляет последнюю косую черту перед "? Param = value" - PullRequest
0 голосов
/ 30 мая 2018

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

Мой оригинальный URL: https://example.com/node/?id=10

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

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

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

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

Содержимое .htacccess:

RewriteEngine On
RewriteBase /
DirectorySlash Off

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

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

0 голосов
/ 30 мая 2018

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

RewriteEngine On

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