User Tools

Site Tools


ru:config:htaccess

Файл .htaccess

В этой секции обсуждаются некоторые вопросы тонкой настройки главного файла .htaccess вашего сайта. Эти настройки в основном используются, если на сайте включены ЧПУ, но существуют и другие области их применения.

htaccess с www / без www

По умолчанию, GetSimple не имеет настроек, предписывающих наличие или отсутствие www в основном URL сайта в секции Настройки сайта в административной панели. Для того, чтобы в вашем URL не было префикса www, добавьте следующую инструкцию в ваш .htaccess-файл:

RewriteCond %{HTTP_HOST} !^domain.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

Наоборот, если вы предпочитаете, чтобы ваш URL был всегда с www, используйте следующие инструкции:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

Этот код должен включаться в файл ниже строки RewriteBase, но выше строки RewriteCond %{REQUEST_FILENAME} !-f. Дополнительную информацию можно почерпнуть в этом посте (на английском).

ЧПУ относительно корневого каталога сайта при установке GS в подпапку

При установке GetSimple в поддиректорию, скажем, …/cms/, следуйте обычной процедуре. После завершения установки необходимо создать или отредактировать существующий файл .htaccess в корневой директории вашего сервера, включив в него следующие команды:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} =/
RewriteRule ^(.*)$ /cms/$1 [L]

Разумеется, в приведенном примере следует заменить “cms” на реальное имя подпапки, в которую вы только что установили систему. В результате URL страницы с адресом mydomain.com/cms/contact-us будет отдаваться пользователям с URL как mydomain.com/contact-us.

При редактировании уже установленной системы обязательно измените значение поля Основной URL сайта в секции административной панели Настройки на соответствующий, чтобы ссылки меню использовали новый основной адрес при формировании меню.

Оптимизация

Вместо плагина, управляющего процессом кэширования, и, соответственно, повышающего скорость работы вашего сайта на GetSimple, можно добавить в конец .htaccess-файла корневого уровня приведенный ниже код. Отметим, что он работает уже много месяцев на сайте get-simple.info, не вызывая никаких проблем.

# Enable GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifmodule>

# Expires Headers - 2678400s = 31 days
<ifmodule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType image/gif "access plus 2678400 seconds"
  ExpiresByType image/jpeg "access plus 2678400 seconds"
  ExpiresByType image/png "access plus 2678400 seconds"
  ExpiresByType text/css "access plus 518400 seconds"
  ExpiresByType text/javascript "access plus 2678400 seconds"
  ExpiresByType application/x-javascript "access plus 2678400 seconds"
</ifmodule>

# Cache Headers
<ifmodule mod_headers.c>
  # Cache specified files for 31 days
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  # Cache HTML files for a couple hours
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  # Cache PDFs for a day
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  # Cache Javascripts for 31 days
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</ifmodule>

Разработчики благодарят Dave Rupert за этот код, первоначально написанный для WordPress.

В зависимости от ваших настроек, если вы не хотите, чтобы страницы административной панели, а также редактируемые страницы кэшировались, можно добавить в файл следующий код:

<FilesMatch "\.(php)$">
    <IfModule mod_expires.c>
        ExpiresActive Off
    </IfModule>
    <IfModule mod_headers.c>
        Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
    </IfModule>
</FilesMatch>

.html вместо слэша (/)

Если вы хотите, чтобы ваши URL заканчивались расширением .html (при включенном mod_rewrite), а не косой чертой, прочитайте на форуме GS следующие два поста (на английском)

Проще говоря

Во-первых, измените значение поля Настройка ЧПУ в настройках сайта в секции Настройки на:

%slug%.html

или

%parent%/%slug%.html 

Во-вторых, отредактируйте ваш .htaccess-file:

вместо

RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]

вставьте:

RewriteRule ([A-Za-z0-9-]+).html index.php?id=$1 [QSA,L]

Ссылки

На главную Содержание

Страницы этой секции

Дополнительная информация по системе

ru/config/htaccess.txt · Last modified: 2013/10/16 09:28 by Arkady