.htaccess для удобного URL-адреса с несколькими переменными
Я работаю над тем, чтобы сделать мой сайт более удобным для SEO, который я в настоящее время использую
RewriteEngine On
RewriteRule (.*)$ index.php?page=$1
Чтобы превратить site.co.uk/index.php?page=page_name
в site.co.uk/page_name
Я также хочу использовать это и для подстраниц. Я пробовал это:
RewriteEngine On
RewriteRule (.*)/(.*)$ index.php?page=$1&subpage=$2
Но он не работает, он запускается site.co.uk/page_name/sub_page
, но когда вы переходите к site.co.uk/page_name
, он возвращает 404 не найдено.
Я хочу, чтобы он запустился site.co.uk/page_name
и вернулся page_name
Или
site.co.uk/page_name/sub_page
и вернуться sub_page
И так далее
site.co.uk/page_name/sub_page/sub_page2/...
1 answers
Используя только:
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
Нормально, тогда вы можете направить запрос в своем скрипте.
Вы разделяете переменную страницы разделителем explode()/, а затем устанавливаете переменные.
$route = explode('/',$_GET['page']);
$page = isset($route[0]) ? $route[0] : null;
$subpage = isset($route[1]) ? $route[1] : null;
$yada = isset($route[2]) ? $route[2] : null;
Многие фреймворки MVC используют этот метод. Это называется маршрутизацией.