Пытаюсь настроить ЧПУ.
Вот так выглядит .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?c=$0 [QSA]
<FilesMatch "\.(php)$">
Deny from all
</FilesMatch>
<FilesMatch "index.(php)$">
Allow from all
</FilesMatch>
В файле index.php URL разбивается по слешу. И в зависимости от того, что у нас в URL, подключается нужный контроллер. Всё работает нормально.
Но есть одна проблема. При обращении по адресу site.ru/index.php открывается главная страница. При обращении по адресу site.ru/index.php?c=add открывается то же, что открывается по адресу site.ru/add.
Как сделать так, чтобы сайт работал только на ЧПУ, а при обращении по адресу типа site.ru/index.php... была ошибка 404, либо редирект на главную страницу?
Решил проблему.
В index.php дописал следующие строчки:
//Настройка 404 ошибки для 'index', 'index.php?...' и т. п. ;
$root = '/site.ru';
$request_uri = $_SERVER['REQUEST_URI'];
$pattern = "/index/i";
preg_match($pattern, $request_uri, $p_m);
if (count($p_m) > 0) {
//Подключаем контроллер 404 ошибки, в нём есть строчка "header($_SERVER['SERVER_PROTOCOL']." 404 Not Found");"
require_once ('c/404.php');
exit();
}
Теперь работает как надо.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ситуация: при заходе на сайт с нового ip без cookie включается защита cloudfare, которая несколько секунд что-то вычисляет, затем высылает привязанные...
Как здесь сделать пагинацию? В идеале двумя способами: обычная пагинация ( < 1 2 3 4 5 > ) и в добавок через кнопку "Показать еще" (дозагружать строки...