RewriteCond %{QUERY_STRING} ^$ RewriteRule ^$ /aaabbb.html [R=301,L]
Ставить в начало файла выше остальных RewriteRule.
#remove end-slash RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] #remove .php and redirect RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ $1.php [NC,L]
Этот фрагмент заменить на такой:
#remove end-slash RewriteRule ^(.+)/$ /$1 [R=301,L] #remove .php and redirect RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R=301,L] RewriteCond %{DOCUMENT_ROOT}/$1/index.php -f RewriteRule ^(.+)$ $1/index.php [L] RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ $1.php [L] DirectorySlash off
Тогда при запросе /de будет вызван /de/index.php
Если удалить правило:
RewriteCond %{DOCUMENT_ROOT}/$1/index.php -f RewriteRule ^(.+)$ $1/index.php [L]
То при запросе /de будет вызван /de.php
RewriteRule ^news/default\.asp$ /? [R=301,L]
Или
RewriteRule default\.asp /? [R=301,L]
RewriteRule ^getnews\.asp$ /? [R=301,L]
Да всё как обычно, если поставить правило в самый конец файла, то оно может не работать.
prowordpress, редирект нужно перенести в начало файла, чтобы он срабатывал до того, как правила для ЧПУ направят запрос на index.php.
RewriteCond %{QUERY_STRING} sef=hc RewriteRule ^index.php$ https://selenia.com.ua/? [L,R=301]
Там если не добавить знак вопроса, то при редиректе останутся исходные GET параметры и произойдёт зацикливание на selenia.com.ua/?sef=hc
Ну если выучил, то зачем тут приплетать трейты. Метод PDO::query() выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement или FALSE, если запрос выполнить не удалось.
$stmt = $this->db->query($sql);
Т.е. сохраняешь в переменную результат вызова. Потом проверяешь этот результат. Если там FALSE, то запрос выпольнить не удалось. Если запрос выполнен успешно, то в $stmt у тебя объект PDOStatement и уже можно вызывать $stmt->fetch(PDO::FETCH_OBJ).
Ну так всё верно тебе говорит нет PDO::fetch(), есть PDOStatement::fetch().
https://www.php.net/manual/ru/book.pdo.php
RewriteRule ^([^/]+/)1$ /$1 [R=301,L]
akill, такое бывает если ставить редирект после правил для ЧПУ. Так что редирект нужно ставить выше остальных правил, чтобы он срабатывал до того как другие правила поменяют запрос на /index.php?cat=