Options -Indexes
RewriteEngine On
RewriteBase /
# Удаляем ненужные HTTP заголовки
Header unset X-Powered-By
Header unset Pragma
Header unset Expires
Header unset Server
#Header unset Cache-Control: no-store, no-cache, must-revalidate
#Header unset Cache-Control
# Добавляем нужные HTTP заголовки
#Header append Cache-Control: max-age=10800
#Header append Content-Encoding: gzip
Header append Vary: Accept-Encoding,User-Agent
#Header append Vary: Accept-Encoding
# Кэширование статики
#Header set Cache-Control "max-age=2592000"
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
###############################################
#### РЕДИРЕКТЫ #####
###############################################
# Редирект c без слэша на со слэшем
#RewriteCond %{REQUEST_URI} !\?
#RewriteCond %{REQUEST_URI} !\&
#RewriteCond %{REQUEST_URI} !\=
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_URI} !\/$
#RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]
# Rewrite domain.com -> domain.com/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} !\..{1,10}$
#RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteRule ^(.*)$ https://mysite.ru/$1/ [L,R=301]
# Редирект с тега с get параметром
RewriteCond %{QUERY_STRING} ^tag=*
RewriteRule ^(.*)$ /$0? [R=301,L]
# Редирект с безслэша на слэш при пагинации
RewriteCond %{REQUEST_URI} ^(.*/)page/(\d+)$
RewriteRule ^ %1page\/%2\/ [R=301,L]
# Редирект со слэша на без слэша
#RewriteRule ^(.*)\/$ $1 [R=301,L]
### Редирект на правильную страницу при переходе по битой ссылке с неправильным окончанием после точки
### Но вначале 404, если после .html стоит точка и возможно идут какие-то символы, например так: .html.*
#RewriteCond %{REQUEST_URI} ^(.*)\.html\.(.+)*
#RewriteRule ^(.*)$ [R=404]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(.*)\.html(.+) [OR]
#RewriteCond %{REQUEST_URI} ^(.*)\.htm$ [OR]
#RewriteCond %{REQUEST_URI} ^(.*)\.ht$ [OR]
#RewriteCond %{REQUEST_URI} ^(.*)\.h$ [OR]
#RewriteCond %{REQUEST_URI} ^(.*)\.$
#RewriteRule ^(.*)\.(.*) $1.html [R=301,L]
# Редирект с http на https
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# Редирект с www.domain.com -> domain.com - используется с плагином SEO Strict URL
# RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
### Редиректы с index.php или index.html на сайт
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/
RewriteRule .* / [R=301,L]
# Правильно перепишите защищенные запросы, чтобы предотвратить предупреждения SSL-сертификата, например. предотвращать
# https://www.domain.com, когда ваш сертификат разрешает только https://secure.domain.com
#RewriteCond %{SERVER_PORT} !^443
#RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]
# Перенаправить менеджера в определенный домен - не переименовывать файл ht.access
# в папке менеджера, чтобы использовать это правило
#RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com$ [NC]
#RewriteCond %{REQUEST_URI} ^/manager [NC]
#RewriteRule ^(.*)$ https://example-domain-please-change.com/$1 [R=301,L]
# Параметр Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# Make sure .htc files are served with the proper MIME type, which is critical
# for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
#AddType text/x-component .htc
# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP's register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# To verify that this option has been set to OFF, open the Manager and choose
# Reports -> System Info and then click the phpinfo() link. Do a Find on Page
# for "register_globals". The Local Value should be OFF. If the Master Value
# is OFF then you do not need this directive here.
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php.ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.
#php_flag register_globals Off
# For servers that support output compression, you should pick up a bit of
# speed by un-commenting the following lines.
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
# The following directives stop screen flicker in IE on CSS rollovers. If
# needed, un-comment the following rules. When they're in place, you may have
# to do a force-refresh in order to see changes in your designs.
#ExpiresActive On
#ExpiresByType image/gif A2592000
#ExpiresByType image/jpeg A2592000
#ExpiresByType image/png A2592000
#BrowserMatch "MSIE" brokenvary=1
#BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
#BrowserMatch "Opera" !brokenvary
#SetEnvIf brokenvary 1 force-no-vary
Чтобы победить этот баг надо исследовать и протестировать все пограничные случаи как заморозка повлияет на тикеты и что надо будет еще пофиксить, т.е. займет какое-то время. По срокам ничего обещать не могу, на следующей неделе попробую выкроить время и разобраться.
Можешь себе пофиксить это поведение в этом фрагменте кода:
… попробуй в сист настройках MODX установи уровень логирования на максимальный: log_level = 4
Мб повезет и в лог запишутся действия или запросы предшествующие этой ошибке.
Эта ошибка, я так понимаю, не общая, а только у меня на одном сайте, поэтому буду искать причины.
Сейчас не могу проверить все, надо на работу, после посмотрю внимательнее.
А объекты на null проверять какие?
Так?
Или как?
Сделал так как ты написал, но не работает это
Дата редактирования 'editedon' не меняется и кэш не очищается.
А в остальном вот такой код плагина, вроде работает без ошибок. Благодарю Евгения за правильное (вроде бы) направление решения данной задачи, чем смог, помог.
Помогите определить id ресурса в данном плагине!
Не определяет id ресурса. Кроме главной нигде не работает, видимо там всегда значение == 1
Этой же строкой ведь уже обновляется дата редактирования 'editedon'
$response = $modx->runProcessor('resource/update', $res);
код плагина такой:
Смотрел с помощью
Вот .htaccess
Хотя не исключено, сейчас вспомнил, что на предыдущем сервере такого не было. Но там случался какой-то др. глюк, хостер перенес мой аккаунт на др. сервер. Может на этом сервере теперь уже другой глюк случается.
Вот скриншот:
id 38 — это основной раздел (родитель) всех разделов консультации.
Покритикуйте…
Может можно сделать как-то менее ресурсоемко, а то 7 запросов к базе.
Я пофиксил и оказалось, что уудалить в условии только лишь вышеуказанную часть условия недостаточно, поэтому я удалил еще и:
То есть не удалил, а убрал пока из условия эти части условия, закомментировав их:
Теперь вроде все нормально и замороженный URL не меняется. Да и по моему ничего не сломалось.
Надеюсь что @tolanych, как и обещал, проверит все и разберется, как будет время.
Не поборол пока ошибку:
Однако @tolanych посоветовал:
Эта ошибка, я так понимаю, не общая, а только у меня на одном сайте, поэтому буду искать причины.
Возможно помощь уже близко :))
Где пустое значение?
Куда хоть копать, подскажите?