view .htaccess @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
line wrap: on
line source

# Блокировать атакующих
#Deny from 192.168.0.1
#Deny from 192.168.0.2

# Редиректы страниц
#Redirect 301 /old-url /new-url

Options -Indexes

DirectoryIndex index.html .cms/index.php

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase "/"

    # domain.ru, www.domain.ru => domain.com
    #RewriteCond %{HTTP_HOST} ^(www\.)?domain\.ru$ [NC]
    #RewriteRule ^(.*)$ https://domain.com%{REQUEST_URI} [R=301,L]

    # http => https
    #RewriteCond %{HTTPS} off
    #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # . => www
    #RewriteCond %{HTTP_HOST} !^www\. [NC]
    #RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # www => .
    #RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    #RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

    # .hidden files
    RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) (^|/)\.(.*) HTTP/[0-9.]+$"
    RewriteRule ^ - [F]

    # redirect /test/ to /test if file /test is exist
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_URI} ^(.+)/$
    RewriteRule ^(.+)/$ $1 [R=301,L]

    #AcceptPathInfo Off
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ .cms/index.php

</IfModule>

<IfModule mod_headers.c>

    # 180 days
    #Header set Cache-Control "max-age=15552000"
    # Этот вариант закеширует вход в админку при установке CMS.
    # Нужно быть готовым нажать F5 или раскомментировать после установки.
    # Всему подряд добавлять кеширование только чтобы успокоить гугл-консоль - плохой вариант
    # В админке, в Шаблоны, можно задать свои заголовки. Если там прописать
    # cache-control: max-age=15552000
    # то отдаваемые страницы получат этот заголовок, но админка и api-запросы
    # будут отдаваться без этого заголовка.

    # Нижеперечисленное подойдет если у вас нет nginx перед apache.
    # Если же захотите кешировать все подряд и делать исключения через <If>,
    # то убедитесь что админка и другие нужные api-запросы не получают
    # заголовок Cache-Control
    
    # 180 days
    #<FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|qoi)$">
    #    Header set Cache-Control "max-age=15552000"
    #</FilesMatch>

    # 180 days
    #<FilesMatch "\.(js|css)$">
    #    Header set Cache-Control "max-age=15552000"
    #</FilesMatch>
    
</IfModule>

#<IfModule mod_expires.c>
#    ExpiresActive On
#    ExpiresDefault "access plus 1 week"
#</IfModule>
#
#<IfModule mod_deflate.c>
#    SetOutputFilter DEFLATE
#</IfModule>

# Для отладки на хостингах
# Если нет ошибок PHP в error.log
# php_flag display_startup_errors off
# php_flag display_errors off
# php_flag html_errors off
# php_flag log_errors on
# php_flag ignore_repeated_errors off
# php_flag ignore_repeated_source off
# php_flag report_memleaks on
# php_flag track_errors on
# php_value docref_root 0
# php_value docref_ext 0
# php_value error_log /home/<u>/<user_name>/<user_name>.beget.tech/PHP_errors.log
# php_value error_reporting 2047
# php_value log_errors_max_len 0
# <Files PHP_errors.log>
#     Order allow,deny
#     Deny from all
#     Satisfy All
# </Files>