Подскажите, как заменить 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 */
Это не лучший пример, но он должен помочь. Детальнее про организацию ЧПУ
Виртуальный выделенный сервер (VDS) становится отличным выбором
Недавно возник довольно интересный вопрос о том, как лучше строить Rest APIУсловно говоря, есть два варианта: 1
Во всех статьях про модели Nested Sets я не смог понять для каких данных она нужнаТо есть приведу пример:
Пытаюсь сделать возможность удалять вложения перед отправкой, и потом отправитьРеализацию нашел, но требуется помощь