Аккуратнее с .htaccess, не "наломайте дров" 😁
добавить хук автоочистки логов
// Добавляем хук для регистрации события cronadd_action('wp', 'schedule_weekly_log_cleanup');// Регистрируем событие cronfunction schedule_weekly_log_cleanup() { if (!wp_next_scheduled('weekly_log_cleanup')) { // Устанавливаем день недели и время выполнения события cron wp_schedule_event(strtotime('next Monday 23:55:00'), 'weekly', 'weekly_log_cleanup'); }}// Добавляем хук для выполнения очистки логов при событии cronadd_action('weekly_log_cleanup', 'clear_visitor_log_weekly');// Функция для очистки логовfunction clear_visitor_log_weekly() { $log_file = ABSPATH . 'visitor_log.txt'; // Открываем файл в режиме записи и обрезаем его до нулевой длины $file_handle = fopen($log_file, 'w'); if ($file_handle) { fclose($file_handle); }}
Я чуть подправил, чтоб в адмике смотреть можно было
// Отслеживание// Создаем функцию для записи данных посетителейfunction log_visitor_info() { $log_file = ABSPATH . 'visitor_log.txt'; // Путь к файлу лога $current_date_time = date('Y-m-d H:i:s'); // Текущая дата и время $visitor_ip = $_SERVER['REMOTE_ADDR']; // IP-адрес посетителя $current_page = $_SERVER['REQUEST_URI']; // Текущая посещенная страница // Запись в лог $log_entry = "$current_date_time - IP: $visitor_ip, Page: $current_page\n"; // Открываем файл в режиме добавления $file_handle = fopen($log_file, 'a'); if ($file_handle) { fwrite($file_handle, $log_entry); fclose($file_handle); }}// Добавляем хук, чтобы записывать данные при каждом запросеadd_action('wp', 'log_visitor_info');// Создаем страницу в меню "Инструменты"function custom_logs_page() { add_submenu_page( 'tools.php', 'Лог посещений', 'Лог посещений', 'manage_options', 'visitor-log', 'render_visitor_log_page' );}add_action('admin_menu', 'custom_logs_page');// Функция для вывода таблицы лога на страницеfunction render_visitor_log_page() { // Получаем данные из файла лога $log_file = ABSPATH . 'visitor_log.txt'; $log_content = file_get_contents($log_file); // Разбиваем записи по строкам $log_entries = explode("\n", $log_content); // Выводим страницу админки echo '<div class="wrap">'; echo '<h2>Лог посещений</h2>'; // Загружаем стили WordPress для таблиц wp_enqueue_style('wp-admin'); // Выводим таблицу с данными echo '<table class="widefat">'; echo '<thead><tr><th>Дата и время</th><th>IP-адрес</th><th>Посещенная страница</th></tr></thead>'; echo '<tbody>'; foreach ($log_entries as $entry) { if (!empty($entry)) { preg_match('/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) - IP: ([\d.]+), Page: (.+)/', $entry, $matches); if (count($matches) === 4) { list(, $date_time, $ip, $page) = $matches; echo "<tr><td>$date_time</td><td>$ip</td><td>$page</td></tr>"; } } } echo '</tbody>'; echo '</table>'; // Добавляем кнопку очистки лога echo '<form method="post">'; echo '<p><input type="submit" name="clear_log" class="button button-primary" value="Очистить лог"></p>'; echo '</form>'; if (isset($_POST['clear_log'])) { clear_visitor_log(); echo '<div class="updated"><p>Лог посещений очищен.</p></div>'; } echo '</div>'; // Закрываем div.wrap}// Функция для очистки логаfunction clear_visitor_log() { $log_file = ABSPATH . 'visitor_log.txt'; // Открываем файл в режиме записи и обрезаем его до нулевой длины $file_handle = fopen($log_file, 'w'); if ($file_handle) { fclose($file_handle); }}
Вы правы.
Решилось только правкой functions
Может надо кому:
function pcl_smart_trailingslashit($string) { /* ensure, that there is one trailing slash */ $string = rtrim($string, '/') . '/'; /* if there is a filename extension like .html or .php, then remove the trailing slash */ if ( 0 < preg_match("#\.[^/]+/$#", $string) ) { $string = rtrim($string, '/'); } return $string; } add_filter('user_trailingslashit', 'pcl_smart_trailingslashit');
RewriteRule ^([^.]*[^/])$ https://%{HTTP_HOST}/$1/ [R=301,L]
Вот как раз так не работает, много редиректов пишет
Отдельно RewriteRule ^([^.]*[^/])$ https://%{HTTP_HOST}/$1/ [R=301,L] не работает у меня, сайт не грузится
Или я неверно записал?
Сейчас вот так - так не работает
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^(.+\.html)/$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^([^.]*[^/])$ https://%{HTTP_HOST}/$1/ [R=301,L] - с этим не работает, много редиректов
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Спасибо!! А как еще слеши после дирекеторий добавить?
Чтоб было так https://сайт.ru/product-category/premium/
Ребят, есть такая проблема
https://сайт.ru/product-category/premium///////
Добавил
RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
RewriteRule . %1/%2 [L,R=301]
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
Вроде ОК, но
Никак не удаляется / со сраниц .html
Вышлядит как https://сайт.ru/kupit-zhenskuyu-sumku.html/ - не айс.
Короче, мне надо, чтоб все урлы с лиректориями заканчивались на /
Ну а с .html - без / на конеце, само собой
Как это правильно прописать в .htaccess
Сайт wordpress
Хостинг beget
p.s. beget мне порекомендовал
RewriteRule (.+)/$ https://%{HTTP_HOST}/$1 [R=301,L]
Все ок, кроче того, что не могу после этого попасть в админку
http://сайт.ru/wp-admin/
ERR_TOO_MANY_REDIRECTS
А откуда такой внезапный рост?
Только чего такого сделать особенного, чтоб не навредить.
А у меня все вниз.. капец
Странно, а товарищ платит (и выставляются счета) по этим реквизитам
Получатель: ООО "Яндекс"
ИНН / КПП: 7736207543 / 997750001
Расчетный счет: 40702810600014307627
Банк: АО Юникредит Банк, 119034, г. Москва, Пречистенская наб., д. 9
Корсчёт: 30101810300000000545
БИК: 044525545
____
О и правда, поменяли реквизиты в счете!