Jumast
@Jumast
разработка сайтов - html/css/php/js

Как решить чтобы параметры через htaccess передавались?

Всем привет, как передать GET параметры в htaccess с помощью switch case ?
Имеется вот такой роутинг.

/index.php
# Шапка
include('inc/head.php');

# Страницы
$url = explode('?', $_SERVER['REQUEST_URI'], 2);

switch($url[0]){
    case '/' : require __DIR__ . '/pages/main.php';break; // Главная
    case '/login' : require __DIR__ . '/pages/login.php';break; // Вход
    case '/reg' : require __DIR__ . '/pages/reg.php';break; // Регистрация
    case '/about' : require __DIR__ . '/pages/about.php';break; // О проекте
    default: require __DIR__ . '/404.php';break; // 404
}

# Подвал
include('inc/foot.php');

/.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php [QSA,L]


А вот проблема не получается вывести адрес
Пример:
case '/link/edit/12' : require __DIR__ . '/pages/account/link.php';break; // Ссылки
это https://localhost/link.php?edit=12
в красоту https://localohost/link/edit/12

что в htaccess нужно для этого?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
Jumast
@Jumast Автор вопроса
разработка сайтов - html/css/php/js
Вопрос решен!

Получаем ссылку типа /link/edit/132
убираем лишнее
$link_add = mb_eregi_replace('[^0-9 ]', '', $uri[0]); // получаем число

Число отдаем вот сюда
case '/link/edit/'.$link_add.'' : $_GET['advedit'] = $link_add; require __DIR__ . '/user/link/_link.php';break; // Serf Edit


Теперь ссылка работает с параметрами /link.php?advedit=123
в .хтаччесс
/link/edit/123
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы