@mr_rakhimov

Как удалить GET параметр из url при помощи файла .htaccess?

Здравствуйте, у меня возникла задачка связанная с url. У меня есть ссылка:
employeedb3/id?id=id_000001
,мне нужно привести её к виду:
employeedb3/id_000001

Как этого можно добиться при помощи файла .htaccess при этом не теряя GET-параметры

Вот код из файла .htaccess
Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /pages/([^.]+)\.php [NC]
RewriteRule ^ /%1 [L,NC,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/pages/$1\.php -f [NC]
RewriteRule ^([^.]+?)/?$ pages/$1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^([^.]+?)/?$ $1.php [NC,L]
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@dodo512
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /pages/([^.]+)\.php [NC]
RewriteRule ^ /%1 [L,R=301]

RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+)
RewriteRule ^id$ /%1? [R=301,L]

RewriteRule ^(id_\d+)$ pages/id.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/pages/$1\.php -f
RewriteRule ^([^.]+?)/?$ pages/$1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
это если тебе нужен любой из гет параметров
RewriteCond %{QUERY_STRING} (?:^|&)id\=(.*)(?:$|&)
RewriteRule ^employeedb3/id$ https://employeedb3/%1? [L,R=301]

ну и частный случай
RewriteCond %{QUERY_STRING} (?:^|&)id\=(id_000001)(?:$|&)
RewriteRule ^employeedb3/id$ https://employeedb3/%1? [L,R=301]


%1 это не опечатка, это первая группа из RewriteCond
Ответ написан
Ваш ответ на вопрос

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

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