SagePointer писал(а): ↑27 май 2021, 01:15
Я про сами правила mod_rewrite
вот такой файл:
#---------
Options +FollowSymLinks
Options -Indexes
AddDefaultCharset UTF-8
RewriteEngine on
RewriteBase /
#--защита .hta
RewriteRule /\.(.*) - [NC,F]
#--защита .hta
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
#дубли слешей убирать
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule (.*) %1/%2 [R=301,L]
#дубли слешей убирать
DirectoryIndex index.php index.html index.htm
RewriteRule robots.txt robots.php [QSA,L]
#cron fix
RewriteRule ^/codes/catalog/extend_site_pages/submit_registration_cron.php [QSA,L]
RewriteRule ^/codes/catalog/extend_site_pages/submit_inform_cron.php [QSA,L]
RewriteRule ^/codes/payment_systems/select_payment_system.php [QSA,L]
#cron fix
#bagfix
RewriteRule modules/bbcode/bbcode_edit/help_bbcode.html modules/bbcode/bbcode_edit/help_bbcode.html [QSA,L]
RewriteRule receiver.html receiver.html [QSA,L]
#bagfix
#Shorter page for ajax
RewriteRule ^([a-zA-Z]{2})/ajax_get_list_shop.php /codes/shop/menu_generator.php?j=shop_products_slider&l=$1 [QSA,L]
RewriteRule ^ajax_get_list_shop.php /codes/shop/menu_generator.php?j=shop_products_slider [QSA,L]
RewriteRule ^([a-zA-Z]{2})/ajax_get_list_blog.php /codes/blog/blog_menu_generator.php?j=blog_page_slider&l=$1 [QSA,L]
RewriteRule ^ajax_get_list_blog.php /codes/blog/blog_menu_generator.php?j=blog_page_slider [QSA,L]
#Shorter page for ajax
<ifModule mod_expires.c>
ExpiresActive On
#ExpiresDefault "access plus 30 seconds"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 week"
ExpiresByType image/jpg "access plus 1 week"
ExpiresByType image/png "access plus 1 week"
ExpiresByType image/gif "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 week"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType audio/mpeg "access 1 month"
</ifModule>
#-- кеширование доп.
#Сжимаем компоненты сайта путем включения Gzip
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml image/svg+xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript application/x-font-ttf application/x-font-otf font/truetype font/opentype application/rss+xml application/atom+xml
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_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
</FilesMatch>
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
<FilesMatch "\.(txt|xml|js|css)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>
</IfModule>
#Блокируем все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
#Блокируем все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#Блокируем все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
#Перенаправляем все подобные на страницу с ошибкой 403 - запрещено
RewriteRule ^(.*)$ index.php [F,L]
#---------ErrorDocument
ErrorDocument 400 /error.php?error=400
ErrorDocument 401 /error.php?error=401
ErrorDocument 403 /error.php?error=403
ErrorDocument 404 /error.php?error=404
ErrorDocument 413 /error.php?error=413
ErrorDocument 500 /error.php?error=500
#---------ErrorDocument
#CHPU LANG REDIRECT
RewriteRule ^([a-zA-Z]{2})$ $1/ [R=301,L]
#CHPU LANG REDIRECT
#CHPU LANG SET
RewriteRule ^([a-zA-Z]{2})/$ /?l=$1 [QSA,L]
#CHPU LANG SET
RewriteRule ^([a-zA-Z]{2})/url_ref.php$ /url_ref.php [QSA,L]
#Lang other page---------------------
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]{2})/page.php$ /index.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/pm.php$ /index.php?l=$1 [QSA,L]
#Lang other page---------------------
#---------
#Authorize---------
RewriteRule ^admin/$ /?authorize [QSA,L]
RewriteRule ^([a-zA-Z]{2})/admin/$ /?authorize&l=$1 [QSA,L]
#Authorize---------
#BLOG--ЧПУ
RewriteRule ^([a-zA-Z]{2})/blog$ /$1/blog/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/blog/$ /blog.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/blog/([^/]+)$ /$1/blog/$2/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/blog/([^/]+)/$ /blog.php?blog_cat=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/blog/([^/]+)/([^/]+).htm$ /blog.php?blog_cat=$2&blog_cat_p=$3&l=$1 [QSA,L]
#BLOG--ЧПУ
#NEWS--ЧПУ
RewriteRule ^([a-zA-Z]{2})/news$ /$1/news/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/news/$ /news.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/news/([^/]+).htm$ /news.php?news_cat_p=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/news/([^/]+)/$ /news.php?news_cat=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/news/([^/]+)/([^/]+).htm$ /news.php?news_cat=$2&news_cat_p=$3&l=$1 [QSA,L]
#NEWS--ЧПУ
#tags---------------------
#tags редирект для всех блогов на ЧПУ
#fix end in tags
RewriteRule ^tags[/]([A-Za-z]+)[/]([A-Za-z]+)[/]([0-9]+).htm$ /$1/tags/$2/$3.htm [R=301,L]
RewriteRule ^tags[/]([A-Za-z]+)[/]([0-9]+).htm$ /$1/tags/$2.htm [R=301,L]
RewriteRule ^tags[/]([A-Za-z]+)[/]$ /$1/tags/ [R=301,L]
RewriteRule ^tags[/]([A-Za-z]+)$ /$1/tags/ [R=301,L]
RewriteRule ^tags$ / [R=301,L]
RewriteRule ^tags/$ / [R=301,L]
RewriteRule ^([a-zA-Z]{2})/tags$ /$1/tags/ [R=301,L]
RewriteCond %{QUERY_STRING} ^p=tag&l=([A-Za-z]+)$
RewriteRule ^tags.php$ /%1/tags/? [R=301,L]
RewriteCond %{QUERY_STRING} ^p=tag&tagid=([0-9]+)&l=([A-Za-z]+)$
RewriteRule ^tags.php$ /%2/tags/%1.htm? [R=301,L]
RewriteCond %{QUERY_STRING} ^tagid=([0-9]+)&l=([A-Za-z]+)$
RewriteRule ^tags.php$ /%2/tags/%1.htm? [R=301,L]
RewriteCond %{QUERY_STRING} ^p=tag&ptape=(.*)&tagid=([0-9]+)&l=([A-Za-z]+)$
RewriteRule ^tags.php$ /%3/tags/%1/%2.htm? [R=301,L]
#fix end in tags
RewriteRule ^([a-zA-Z]{2})/tags/$ /tags.php?p=tag&l=$1$ [QSA,L]
RewriteRule ^([a-zA-Z]{2})/tags/([0-9]+).htm$ /tags.php?p=tag&tagid=$2&l=$1$ [QSA,L]
RewriteRule ^([a-zA-Z]{2})/tags[/](.*)[/]([0-9]+).htm$ /tags.php?p=tag&ptape=$2&tagid=$3&l=$1$ [QSA,L]
#tags---------------------
#catalog--ЧПУ
RewriteRule ^([a-zA-Z]{2})/catalog$ /$1/catalog/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/catalog/$ /catalog.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/catalog/([^/]+)$ /$1/catalog/$2/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/catalog/([^/]+)/$ /catalog.php?cat=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/catalog/([^/]+)/([^/]+).htm$ /catalog.php?cat=$2&cat_p=$3&l=$1 [QSA,L]
#catalog--
#SHOP--ЧПУ
RewriteRule ^([a-zA-Z]{2})/shop$ /$1/shop/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/shop/$ /shop.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/shop/([^/]+)$ /$1/shop/$2/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/shop/([^/]+)/$ /shop.php?shop_cat=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/shop/([^/]+)/([^/]+).htm$ /shop.php?shop_cat=$2&shop_cat_p=$3&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/producer$ /$1/producer/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/producer/([^/]+)$ /$1/producer/$2/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/producer/$ /producer.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/producer/([^/]+)/$ /producer.php?shop_cat_producer=$2&l=$1 [QSA,L]
#SHOP SITE PERSONAL CAT SHOP
RewriteRule ^([a-zA-Z]{2})/pshop$ /$1/pshop/ [R=301,L]
RewriteRule ^([a-zA-Z]{2})/pshop/$ /shop.php?l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/pshop/([^/]+)$ /$1/pshop/$2/ [R=301,L]
RewriteRule ^([A-Za-z]+)/pshop/([^/]+)/$ /shop.php?pshop_cat=$2&l=$1 [QSA,L]
RewriteRule ^([A-Za-z]+)/pshop/([^/]+)/([^/]+).htm$ /shop.php?pshop_cat=$2&shop_cat_p=$3&l=$1 [QSA,L]
#SHOP SITE PERSONAL CAT SHOP
RewriteRule ^([a-zA-Z]{2})/news/([^/]+).htm$ /news.php?news_cat_p=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/news/([^/]+)/([^/]+).htm$ /news.php?news_cat=$2&news_cat_p=$3&l=$1 [QSA,L]
#после обновления новостей вернуть эти 3 строки выше
RewriteRule ^([a-zA-Z]{2})/news/([^/]+)$ /$1/news/$2/ [R=301,L]
RewriteRule ^news[/]([A-Za-z]+)[/]([0-9]+).htm$ /$1/news/$2.htm [R=301,L]
#NEWS--ЧПУ
#-- CHPY
#--------------------
#---------sys XML
RewriteRule ^sitemap.xml /xml_google_sitemap.xml.php?xmlcsv&frompage=all [QSA,L]
RewriteRule ^([a-zA-Z]{2})/sitemap.xml /xml_google_sitemap.xml.php?xmlcsv&frompage=all&l=$1 [QSA,L]
RewriteRule ^search.htm$ /index.php?pageid=108
#================================================================================================================
#================================================================================================================
#================================================================================================================
#================================================================================================================
#-------wordlinks
RewriteRule ^([a-zA-Z]{2})/p_(.*).html$ /page.php?p=$2&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/p_(.*).htm$ /page.php?p=$2&l=$1 [QSA,L]
RewriteRule ^p_(.*).htm /index.php?p=$1 [QSA,L]
RewriteRule ^p_(.*).html /index.php?p=$1 [QSA,L]
#-------wordlinks
#=====site.BIZ only subage to shop============================================================================
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !htmleditor/
RewriteRule ^([a-zA-Z]{2})/(.*).htm$ /?subpage=$2&l=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !htmleditor/
RewriteRule ^(.*).htm$ /?subpage=$1 [QSA,L]
#=====site.BIZ only subage to shop============================================================================
#---------big pages
R
RewriteRule ^contacts.html$ /page.php?p=feedback [QSA,L]
RewriteRule ^([a-zA-Z]{2})/contacts.html$ /page.php?p=feedback&l=$1 [QSA,L]
RewriteRule ^([a-zA-Z]{2})/guide.html$ /page.php?p=guide&l=$1 [QSA,L]
#---------big pages
#ANTIHACK
RewriteRule ^/(.*)/(.*)\.htm$ /error.php?error=403
RewriteRule ^/(.*)/(.*)/(.*)\.htm$ /error.php?error=403
RewriteRule ^/(.*)/(.*)/(.*)/(.*)\.htm$ /error.php?error=403
RewriteRule ^/(.*)/(.*)/(.*)/(.*)/(.*)\.htm$ /error.php?error=403
#RewriteRule ^(.*)\.html$ /error.php?error=403
RewriteRule ^/(.*)/(.*)\.html$ /error.php?error=403
RewriteRule ^/(.*)/(.*)/(.*)\.html$ /error.php?error=403
RewriteRule ^/(.*)/(.*)/(.*)/(.*)\.html$ /error.php?error=403
RewriteRule ^/(.*)/(.*)/(.*)/(.*)/(.*)\.html$ /error.php?error=403
#ANTIHACK
#все файлы обрабатывать через index.php
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
#что бы открыть доступ к текстовым файлам
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(jpg|png|css|js|htm|html|xls|gif|jpe?g|png|ico|css|js|html|htm|swf|zip|rar|exe|7z|bz2|gz|txt|pdf|djvu|php|php?)$ - [L]
#что бы открыть доступ к текстовым файлам
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
#все файлы обрабатывать через index.php