Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 016 903 раза!

Форум

Добро пожаловать, Гость!

.htaccess Идеальный конфиг?

Советы и рекомендации, полезные инструкции, обмен опытом
factotum
Сообщения: 24
C нами: 4 года 7 мес

Непрочитанное сообщение factotum » 19 апр 2012, 15:52

собственно предлагаю обсудить у кого что в htaccess и попробовать поискать идеальный конфиг.

Пока черновик выглядит следующим образом:
# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------
# JavaScript
#    Normalize to standard type (it's sniffed in IE anyways)
#    tools.ietf.org/html/rfc4329#section-7.2
<IfModule mod_mime.c>
   AddType text/css .css
   AddType application/x-javascript .js
   AddType text/x-component .htc
   AddType text/html .html .htm
   AddType text/richtext .rtf .rtx
   AddType image/svg+xml .svg .svgz
   AddType text/plain .txt
   AddType text/xsd .xsd
   AddType text/xsl .xsl
   AddType text/xml .xml
   AddType video/asf .asf .asx .wax .wmv .wmx
   AddType video/avi .avi
   AddType image/bmp .bmp
   AddType application/java .class
   AddType video/divx .divx
   AddType application/msword .doc .docx
   AddType application/vnd.ms-fontobject .eot
   AddType application/x-msdownload .exe
   AddType image/gif .gif
   AddType application/x-gzip .gz .gzip
   AddType image/x-icon .ico
   AddType image/jpeg .jpg .jpeg .jpe
   AddType application/vnd.ms-access .mdb
   AddType audio/midi .mid .midi
   AddType video/quicktime .mov .qt
   AddType audio/mpeg .mp3 .m4a
   AddType video/mp4 .mp4 .m4v
   AddType video/mpeg .mpeg .mpg .mpe
   AddType application/vnd.ms-project .mpp
   AddType application/vnd.oasis.opendocument.database         .odb
   AddType application/vnd.oasis.opendocument.chart         .odc
   AddType application/vnd.oasis.opendocument.formula         .odf
   AddType application/vnd.oasis.opendocument.graphics         .odg
   AddType application/vnd.oasis.opendocument.presentation      .odp
   AddType application/vnd.oasis.opendocument.spreadsheet      .ods
   AddType application/vnd.oasis.opendocument.text            .odt
   AddType audio/ogg                                 .ogg .oga
   AddType application/pdf                              .pdf
   AddType image/png                                 .png
   AddType application/vnd.ms-powerpoint                  .pot .pps .ppt .pptx
   AddType audio/x-realaudio                           .ra .ram
   AddType application/x-shockwave-flash                  .swf
   AddType application/x-tar                           .tar
   AddType image/tiff                                 .tif .tiff
   AddType application/x-font-ttf                        .ttf .ttc
   AddType audio/wav                                 .wav
   AddType audio/wma                                 .wma
   AddType application/vnd.ms-write                     .wri
   AddType application/vnd.ms-excel                     .xla .xls .xlsx .xlt .xlw
   AddType application/zip                            .zip
   # Webfonts
   AddType application/vnd.ms-fontobject                  .eot
   AddType application/x-font-otf                        .otf
   AddType application/x-font-ttf                         .ttf .ttc
   AddType application/x-font-woff                        .woff
   # Assorted types
   AddType image/x-icon                              .ico
   AddType image/webp                                 .webp
   AddType text/cache-manifest                            .appcache manifest
   AddType text/x-component                           .htc
   AddType application/x-chrome-extension                  .crx
   AddType application/x-opera-extension                   .oex
   AddType application/x-xpinstall                        .xpi
   AddType application/octet-stream                     .safariextz
   AddType application/x-web-app-manifest+json             .webapp
   AddType text/x-vcard                              .vcf
</IfModule>

# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------

# Force the latest IE version, in various cases when it may fall back to IE7 mode
#   github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk

<IfModule mod_headers.c>
   Header set X-UA-Compatible "IE=Edge,chrome=1"
   # mod_headers can't match by content-type, but we don't want to send this header on *everything*...
   <FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|
manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
      Header unset X-UA-Compatible
   </FilesMatch>
</IfModule>

# ----------------------------------------------------------------------
# Cross-domain AJAX requests
# ----------------------------------------------------------------------

# Serve cross-domain Ajax requests, disabled by default.
# enable-cors.org
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity

#   <IfModule mod_headers.c>
#      Header set Access-Control-Allow-Origin "*"
#   </IfModule>


# ----------------------------------------------------------------------
# CORS-enabled images (@crossorigin)
# ----------------------------------------------------------------------

# Send CORS headers if browsers request them; enabled by default for images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute

<IfModule mod_setenvif.c>
   <IfModule mod_headers.c>
      # mod_headers, y u no match by Content-Type?!
      <FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$">
         SetEnvIf Origin ":" IS_CORS
         Header set Access-Control-Allow-Origin "*" env=IS_CORS
      </FilesMatch>
   </IfModule>
</IfModule>

# ----------------------------------------------------------------------
# Webfont access
# ----------------------------------------------------------------------

# Allow access from all domains for webfonts.
# Alternatively you could only whitelist your
# subdomains like "subdomain.example.com".

<IfModule mod_headers.c>
   <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
      Header set Access-Control-Allow-Origin "*"
   </FilesMatch>
</IfModule>

# ----------------------------------------------------------------------
# Expires h2eaders (for better cache control)
# ----------------------------------------------------------------------

# These are pretty far-future expires headers.
# They assume you control versioning with cachebusting query params like
#   <script src="application.js?20100608">
# Additionally, consider that outdated proxies may miscache
#   www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

# If you don't use filenames to version, lower the CSS   and JS to something like
#   "access plus 1 week" or so.

<IfModule mod_expires.c>

   ExpiresActive On

   # Perhaps better to whitelist expires rules? Perhaps.
   ExpiresDefault                              "access plus 1 month"

   # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
   ExpiresByType text/cache-manifest                "access plus 0 seconds"

   # Your document html
   ExpiresByType text/html                        "access plus 0 seconds"

   # Data
   ExpiresByType application/xml                   "access plus 0 seconds"
   ExpiresByType application/json                  "access plus 0 seconds"
   ExpiresByType text/xml                        "access plus 0 seconds"
      
   # Feed
   ExpiresByType application/rss+xml               "access plus 1 hour"
   ExpiresByType application/atom+xml               "access plus 1 hour"

   # HTC files   (css3pie)
   ExpiresByType text/x-component                  "access plus 1 month"

   # CSS and JavaScript
   ExpiresByType text/css                        "access plus 1 month"
   ExpiresByType application/javascript            "access plus 1 month"
   
</IfModule>

# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------

<IfModule mod_deflate.c>

   # Force deflate for mangled headers
   # developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
   <IfModule mod_setenvif.c>
      <IfModule mod_headers.c>
         SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
         RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
      </IfModule>
   </IfModule>

   # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
   <IfModule filter_module>
      FilterDeclare    COMPRESS
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $text/html
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $text/css
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $text/plain
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $text/xml
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $text/x-component
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/javascript
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/json
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/xml
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/xhtml+xml
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/rss+xml
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/atom+xml
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/vnd.ms-fontobject
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $image/svg+xml
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $image/x-icon
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $application/x-font-ttf
      FilterProvider   COMPRESS   DEFLATE resp=Content-Type $font/opentype
      FilterChain       COMPRESS
      FilterProtocol   COMPRESS   DEFLATE change=yes;byteranges=no
   </IfModule>

   <IfModule !mod_filter.c>
      # Legacy versions of Apache
      AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
      AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
      AddOutputFilterByType DEFLATE image/x-icon image/
svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
   </IfModule>

</IfModule>

<IfModule mod_headers.c>
   Header set Pragma "public"
   Header append Cache-Control "public, must-revalidate, proxy-revalidate"
   Header append Vary Accept-Encoding
   # FileETag None is not enough for every server.
   Header unset ETag
      
   # Unset Cookies
   <FilesMatch "\.(css|ico|png)$">
      RequestHeader unset Cookie
      Header unset Set-Cookie
   </FilesMatch>

</IfModule>

# Since we're sending far-future expires, we don't need ETags for
# static content.
#    developer.yahoo.com/performance/rules.html#etags
FileETag None


# ----------------------------------------------------------------------
# Built-in filename-based cache busting
# ----------------------------------------------------------------------

# If you're not using the build script to manage your filename version revving,
# you might want to consider enabling this, which will route requests for
# /css/style.20110203.css to /css/style.css

# To understand why this is important and a better idea than all.css?v1231,
# read: github.com/h5bp/html5-boilerplate/wiki/Version-Control-with-Cachebusting

# Uncomment to enable.
# <IfModule mod_rewrite.c>
#    RewriteCond %{REQUEST_FILENAME} !-f
#    RewriteCond %{REQUEST_FILENAME} !-d
#    RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
#</IfModule>

# ----------------------------------------------------------------------
# Prevent SSL cert warnings
# ----------------------------------------------------------------------

# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
# https://www.example.com when your cert only allows https://secure.example.com
# Uncomment the following lines to use this feature.

# <IfModule mod_rewrite.c>
#    RewriteCond %{SERVER_PORT} !^443
#    RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]
# </IfModule>

# ----------------------------------------------------------------------
# Prevent 404 errors for non-existing redirected folders
# ----------------------------------------------------------------------

# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the same name does not exist
#    e.g. /blog/hello : webmasterworld.com/apache/3808792.htm

Options -MultiViews

# ----------------------------------------------------------------------
# Custom 404 page
# ----------------------------------------------------------------------

# You can add custom pages to handle 500 or 403 pretty easily, if you like.
# ErrorDocument 404 /404.html

# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------

# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8

# Force UTF-8 for a number of file formats
AddCharset utf-8 .css .js .xml .json .rss .atom


# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------


# Do we want to advertise the exact version number of Apache we're running?
# Probably not.
## This can only be enabled if used in httpd.conf - It will not work in .htaccess
# ServerTokens Prod


# "-Indexes" will have Apache block users from browsing folders without a default document
# Usually you should leave this activated, because you shouldn't allow everybody to surf through
# every folder on your server (which includes rather private places like CMS system folders).
<IfModule mod_autoindex.c>
   Options -Indexes
</IfModule>


# Block access to "hidden" directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or Git.
<IfModule mod_rewrite.c>
   RewriteCond %{SCRIPT_FILENAME} -d
   RewriteCond %{SCRIPT_FILENAME} -f
   RewriteRule "(^|/)\." - [F]
</IfModule>


# Block access to backup and source files
# This files may be left by some text/html editors and
# pose a great security danger, when someone can access them
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
   Order allow,deny
   Deny from all
   Satisfy All
</FilesMatch>


# 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
#
# 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

# Rename session cookie to something else, than PHPSESSID
# php_value session.name sid

# Do not show you are using PHP
# Note: Move this line to php.ini since it won't work in .htaccess
# php_flag expose_php Off

# Level of log detail - log all errors
# php_value error_reporting -1

# Write errors to log file
# php_flag log_errors On

# Do not display errors in browser (production - Off, development - On)
# php_flag display_errors Off

# Do not display startup errors (production - Off, development - On)
# php_flag display_startup_errors Off

# Format errors in plain text
# Note: Leave this setting 'On' for xdebug's var_dump() output
# php_flag html_errors Off

# Show multiple occurrence of error
# php_flag ignore_repeated_errors Off

# Show same errors from different sources
# php_flag ignore_repeated_source Off

# Size limit for error messages
# php_value log_errors_max_len 1024

# Don't precede error with string (doesn't accept empty string, use whitespace if you need)
# php_value error_prepend_string " "

# Don't prepend to error (doesn't accept empty string, use whitespace if you need)
# php_value error_append_string " "

# Increase cookie security
<IfModule php5_module>
   php_value session.cookie_httponly true
</IfModule>

Строился с учетом требований google page speed и yahoo performance rules
Последний раз редактировалось factotum 19 апр 2012, 16:04, всего редактировалось 1 раз.

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 19 апр 2012, 15:57

У вас тут 3-4 места с длинными строками. Разбейте значения пополам и продублируйте условия с каждой половиной, а то форум вон как разнесло.

factotum
Сообщения: 24
C нами: 4 года 7 мес

Непрочитанное сообщение factotum » 19 апр 2012, 16:06

ага. присмотритесь к этому

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 19 апр 2012, 16:14

Спасибо, сейчас попробую поставить его вместо нашего форума :-)

nerevar1n
Сообщения: 16
C нами: 4 года 10 мес
Контакты:

Непрочитанное сообщение nerevar1n » 19 апр 2012, 19:24

Советую обратить внимание на http://html5boilerplate.com/ и непосредственно .htaccess

factotum
Сообщения: 24
C нами: 4 года 7 мес

Непрочитанное сообщение factotum » 19 апр 2012, 19:43

nerevar1n писал(а):Советую обратить внимание на http://html5boilerplate.com/ и непосредственно .htaccess
ага. оно и есть, с небольшим модом

Добавлено спустя 1 минуту 3 секунды:
Максим, верните кнопку "цитата" по умолчанию. Идея с появлением кнопки только при наличии выделения несколько сумбурна.

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 19 апр 2012, 21:43

factotum писал(а):Максим, верните кнопку "цитата" по умолчанию. Идея с появлением кнопки только при наличии выделения несколько сумбурна.


Сейчас поищу в настройках, может это настраивается. Это не я, это новый форум такой :-)

factotum
Сообщения: 24
C нами: 4 года 7 мес

Непрочитанное сообщение factotum » 20 апр 2012, 08:41

Максим,
http://phpbbex.com/forum/download/file.php?id=1&filename=qr_options.png
"Разрешить полное цитирование - да"

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 20 апр 2012, 10:36

factotum писал(а):Максим,
http://phpbbex.com/forum/download/file.php?id=1&filename=qr_options.png
"Разрешить полное цитирование - да"


Встаю на колени и со слезами на глазах прошу вас, покажите где это настраивается. Я вчера пол дня искал и то что вы показали - не нашел.

Апдейт: фух.... ну и система, надо было сначала модуль установить и только сейчас я нашел где-это. Чисто случайно наткнулся. Какого чёрта неустановленный модуль работал не понятно, видимо такой кривой этот phpbbex. Спасибо за всё, в общем то еще вчера всё обновил.

factotum
Сообщения: 24
C нами: 4 года 7 мес

Непрочитанное сообщение factotum » 20 апр 2012, 22:16

Максим, ага, при переходе с обычного phpbb на phpbbex много вопросов. если ставить с нуля - то все красиво ))


Вернуться в «Полезные советы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей