1 1 1 1 1 1 1 1 1 1 Рейтинг: 4.50 - 1 отзыв

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

Нужно знать, что для разных сайтов и в зависимости от стоящих задач, файлs htaccess, могут отличаться. Самое главное, что вы должны понимать основные правила их составления и использовать некоторые хитрости, написанные в кодах на серьезных сайтах.

Иногда нужно, чтобы все старые адреса какой-либо категории переадресовывались на другую категорию:

 

У меня была ситуация, когда я перенес на другой сайт книгу, которая занимала целую категорию с несколькими сотнями страниц. Куда переадресовывать теперь эти страницы?

  • на новый сайт
  • на какие-то страницы этого же сайта

Чтобы не прописывать сотню адресов, я сделал такой вот rод. 

RewriteRule ^staryy/(.*)$ /novyj[R=permanent,L]

Теперь все ссылки начинающиеся с staryy, будут переадресованы на одну страницу novyj.

Файл htaccess для Joomla

Ошибка «Strict Standards: Non-static method JLoader::import () should not be called statically in»

Для того чтобы не показывались ошибки

php_value error_reporting 30711
php_flag display_errors off

1. Сейчас уже никто не пишет www в начале адреса, поэтому логично, ставить главным адресом, страницу без www.

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
</IfModule>

 

2. Убираем слеши в Joomla со всех адресов.

RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]]

 

Для разных проектов идеальный файл htaccess может отличаться, но за основу я беру этот свой шаблон.

денежный трактор

Идеальный htaccess для Joomla

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
</IfModule>

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>

# // Ошибка после установки плагина Yandex
php_value error_reporting 1

# Чтобы загружались большие файлы
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

# // Защита папки images от внедрения в нее вирусов

php_flag engine  off

RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps
.cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
AddType application/x-httpd-php-source .phtml .php .php3
.php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm
.fcgi .fpl .jsp .htm .html .wml

 

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]


########## Begin - Joomla! core SEF Section
#
AddDefaultCharset utf-8 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
## Can be commented out if causes errors, see notes above.

 

Вариант htaccess для магазина

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.wiski.ru$ [NC]
RewriteRule ^(.*)$ http://wiski.ru/$1 [R=301,L]
</IfModule>

# // Редиректы на нужные страницы

Redirect 301 /viski /kategorii/whisky
Redirect 301 /wiskey /kategorii/whisky
Redirect 301 /tekila /kategorii/tequila
Redirect 301 /vermut /kategorii/wermut
Redirect 301 /dzhin /kategorii/gin
Redirect 301 /vodka /kategorii/vodka
Redirect 301 /shampanskoe /kategorii/champagne
Redirect 301 /konyak /kategorii/cognac
Redirect 301 /rom /kategorii/rum
Redirect 301 /igristoe-vino /kategorii/sparkling-wine
Redirect 301 /liker /kategorii/liqueur

# Включение gzip сжатия русским трактористом text, html, javascript, css, xml:

AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
SetOutputFilter DEFLATE
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
</IfModule>

<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
</IfModule>


# // Ошибка после установки плагина Yandex
php_value error_reporting 1

# Чтобы загружались большие файлы
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]


########## Begin - Joomla! core SEF Section
#
AddDefaultCharset utf-8 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
## Can be commented out if causes errors, see notes above.

# // Бан IP
## USER IP BANNING
<Limit GET POST>
order allow,deny
deny from 46.161.41.32
deny from 87.228.13.239
deny from 194.50.141.137
deny from 178.137.94.138
deny from 188.134.36.10
deny from 198.100.144.92
deny from 95.105.31.119
deny from 136.169.193.105
deny from 77.79.131.27
deny from 188.143.232.31
deny from 188.143.232.111
deny from 91.121.170.197
deny from 178.137.162.227
deny from 82.193.109.52
deny from 188.143.234.127
deny from 95.105.31.119
deny from 91.231.40.52
deny from 188.143.232.12
deny from 94.23.238.222
deny from 94.41.113.86
deny from 136.169.199.3
deny from 136.169.195.52
deny from 136.169.195
deny from 136.169.195.
deny from 46.161.41.34
deny from 176.9.136.58
deny from 62.152.39.213
deny from 61.164.42.147
deny from 94.153.9.53
deny from 220.186.50.95
deny from 46.118.124.71
deny from 192.147.213.222
deny from 118.85.208.222
deny from 37.187.3.157
deny from 162.217.135.20
deny from 91.200.13.100
deny from 171.117.67.87
deny from 95.59.146.163
deny from 200.223.248.98
deny from 91.239.15.211
deny from 46.119.4.14
deny from 95.215.0.27
deny from 216.151.137.35
deny from 213.238.175.10
deny from 14.139.249.228
deny from 192.3.169.70
deny from 216.151.137.36
deny from 202.69.38.100
deny from 37.57.200.107
deny from 146.0.74.205
deny from 109.185.147.100
allow from all
</Limit>

 

денежный трактор

Из сайта kem.ru

RewriteRule ^klipy(.*)$ /video [L,R=301]
RewriteRule ^teksty-pesen(.*)$ /music [L,R=301]
RewriteRule ^minusa(.*)$ /music/27-skachat-minusa-kem-besplatno-2014-god [L,R=301]
RewriteRule ^treki(.*)$ /music [L,R=301]
RewriteRule ^sborniki(.*)$ /music [L,R=301]
RewriteRule ^novosti(.*)$ / [L,R=301]
RewriteRule ^bio(.*)$ / [L,R=301]
Redirect 301 /karta-sajta http://kem.ru/index.php?option=com_xmap&view=xml&tmpl=component&id=1
Redirect 301 /home/muzyka/kem-albom-klejmo-skachat http://kem.ru/music/3-kem-albom-klejmo-skachat
</IfModule>

DirectoryIndex glavnaja.html index.html index.htm index.php


<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>

И не забываем, как с помощью файла htaccess, обеспечивается Защита панели управления по IP адресу.

 

Добавить комментарий

Защитный код
Обновить