Подскажите, как заменить url типа — «/page.php?id=4» на «/contact» (или другое, взависимости от столбца title в БД). Если можно, простой пример
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
index.php
/* Получаем URL в переменную $result в случае yourdomain.com/name-page.html в $result окажется строка: /name-page.html */
$result = $_SERVER['REQUEST_URI'];
/* проверяем, что бы в URL не было ничего, кроме символов алфавита (a-zA-Z), цифр (0-9), а также . / - _ # в противном случае - выдать ошибку 404 */
if (preg_match ('/([^a-zA-Z0-9\.\/\-\_\#])/', $result)) {
header('HTTP/1.0 404 Not Found');
echo 'Недопустимые символы в URL';
exit;
}
/* отбрасываем из ЧПУ всё лишнее, оставляя только имя виртуального html-файла. В случае с yourdomain.com/name-page.html это будет name-page функция preg_split формирует массив, разбивая переданную строку по заданной маске. */
$array_url = preg_split ('/(\/|\..*$)/', $result,-1, PREG_SPLIT_NO_EMPTY);
/* в случае, если обращение было только к домену (yourdomain.com/ или yourdomain.com), в $array_url будет пустой результат, такое событие нужно обработать, как страницу с ID_page = 1 */
if (!$array_url) {
$ID_page = 1;
}else{
$sef_value = $array_url[0];
/* Далее идёт запрос в БД о наличие в столбце SEF строки $sef_value при положительном ответе получаем из БД соответствующий $sef_value $ID_page, если такой строки не найдено - выводим страницу ошибки 404. */
}
/* Теперь обычная обработка, как если бы $ID_page был получен методом GET */
Это не лучший пример, но он должен помочь. Детальнее про организацию ЧПУ
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно возник довольно интересный вопрос о том, как лучше строить Rest APIУсловно говоря, есть два варианта: 1
Во всех статьях про модели Nested Sets я не смог понять для каких данных она нужнаТо есть приведу пример:
Пытаюсь сделать возможность удалять вложения перед отправкой, и потом отправитьРеализацию нашел, но требуется помощь