У меня есть веб-сайт, который не использует дружественные URL-адреса, и я хотел бы его изменить. Мои ссылки до сих пор таковы: http://www.example.com/?l=EN&m=o36ASkkEVi
, где переменная l
содержит язык просмотра, а m
содержит категорию просмотра (меню). Поскольку идентификатор элемента меню уникален, у меня пока не было проблем, даже если это был элемент подменю. Но теперь, когда я пытаюсь изменить его на дружественные URL-адреса, у меня возникает следующая проблема:.htaccess Дружественный URL-адрес предотвращает перенаправление
Во-первых, дружественное название элемента меню не уникально, поскольку (по крайней мере, в моем проекте) могут быть несколько элементов подменю (категории) в разных пунктах главного меню с тем же названием. Например, оба пункта меню Camera
и Mobile Phone
оба имеют подменю Instructions
. Поэтому моя цель заключается в том, чтобы окончательный дружеский URL был чем-то вроде http://www.example.com/EN/Mobile-Phone/Instructions
и http://www.example.com/EN/Camera/Instructions
.
Во-вторых, «глубина» меню не предопределена. Таким образом, могут быть неограниченные подкатегории категории (меню).
В прошлом для небольших сайтов я использовал статические перезаписи htaccess (одно правило для каждого перенаправления), но прямо сейчас, когда статьи и категории несчетны, я не могу сделать то же самое. Я думал о переписывании файла .htaccess для каждой статьи или создания и редактирования меню, чтобы иметь правило для каждого случая, но я думаю, после некоторого момента, который сделает огромный .htaccess. Является ли это решение законным?
Мой вопрос так и есть. Как я могу сделать правило в .htaccess, чтобы всегда отправлять меня в index.php
вместо того, чтобы пытаться найти подпапку веб-сайта, когда я пишу http://www.example.com/EN/Camera/Instructions
, но с тем, чтобы URL-адрес был «видимым» для PHP?
Я знаю, что после этого я смогу использовать explode('/', $_SERVER['REQUEST_URI'])
и достичь своей цели, выбрав из базы данных правильный язык и статью или меню, но я не могу или не могу найти способ, как сделать первую часть.
Кроме того, есть ли способ, что .htaccess может получить мне все предметы после http://www.example.com/
в чем-то вроде массива и передать его как переменные в index.php
?
Спасибо Петр! :) Я уже попробую! –