Удаление косой черты в URL (без косой черты)

У меня есть папка с именем people на моем сервере и index.php в этой папке
Мой URL похож mydomain.com/people/?name=value1&возраст = значение2

Но я очень хочу, чтобы это выглядело как mydomain.com/people?name=value1&возраст = значение2

1

Решение

Поскольку «people» — это папка, а ваш сценарий находится в этой папке, единственный способ для этого — если вы выключите DirectoryIndex, который автоматически перенаправляет браузер, чтобы включить косую черту для любого запроса, который относится к папке.

Обратите внимание, это это косая черта, URI заканчивается на /people/, ? и все после него — строка запроса.

Выключение DirectoryIndex может быть очень опасным, так как используется для предотвращения раскрытия информации. Без косой черты в ваших папках, запрос папки приведет к отображению содержимого этой папки даже если у вас есть индекс каталога. Другими словами, index.php игнорируется, и вместо этого вы получаете список всего содержимого вашей папки. Таким образом, чтобы этого не случилось, вы должны внутренне добавить косую черту обратно.

Так что-то вроде этого в файле htaccess корня вашего документа:

DirectoryIndex Off

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+people/\?
RewriteRule ^ /people [L,R]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ /$1/ [L]
3

Другие решения

С помощью mod_rewrite Вы можете сделать это так:

RewriteEngine On
RewriteRule ^(.+)/$ $1 [L,R,QSA]

QSA здесь не требуется, так как он означает Query String Append и включен по умолчанию.

1

По вопросам рекламы [email protected]