tlustenko

tlustenko
Рейтинг
90
Регистрация
18.12.2011

1) подскажите пожалуйста по поводу доп.параметров в ссылке. такой вопрос:

есть ссылка типа svadebki.com/mp3/song/15/12/

это чпу. она формируется из ссылки svadebki.com/mp3/msong.php?id=15&artist_id=12

но если добавить какие-нибудь символы к этой ссылки, она так и открывается, при этом никаких ошибок не возникает. пример: svadebki.com/mp3/msong.php?id=15&artist_id=12&qwerty

можно ли ссылки такого типа принудительно переводить на правильную ссылку? т.е. например на svadebki.com/mp3/song/15/12/

и влияет ли это как-то на безопасность?

немного покапавшись по другим большим сайтам нашёл такую же проблему:

ethology.ru/library/?id=12 и ethology.ru/library/?id=12?1111

или даже ethology.ru/library/?id=12&id=12&id=12 - всё открывается одинаково.

kp.ru/online/news/1596226/ и kp.ru/online/news/1596226/?=sdg

это или всеобщая проблема или нормальное поведение браузера открывать эти ссылки.

2) и второй вопрос. объясните пожалуйста что значит norec в htaccess? погуглил, но ничего внятного не нашёл.

спасибо.

большое Вам прибольшое спасибо!!!! работает ВСЁ!!!

огромное спасибо за помощь. реально. я мучался около года.

с другом ковыряли ковыряли. в результате пришлось сделать htaccess внутри папки.

вы просто wizard!

спасибо огромное ещё раз!

получился бесконечный цикл - FF поругался. (если заходить на главную и в папку mp3)

пока откатил обратно...

КОРНЕВОЙ htaccess

редиректы, кэширование и gzip-сжатие

####################################################

AddType application/x-httpd-php5 .php .htm .html

Options -Includes

DirectoryIndex index.php

AddDefaultCharset utf-8

Options All -Indexes

RemoveHandler .html .htm

Options +FollowSymLinks

RewriteEngine On

RewriteBase /

ErrorDocument 404 http://svadebki.com/404.php

ErrorDocument 403 http://svadebki.com/

ErrorDocument 302 http://svadebki.com/

# редирект с .net на .com

RewriteCond %{HTTP_HOST} ^svadebki\.net [NC,OR]

RewriteCond %{HTTP_HOST} ^www\.svadebki\.net$ [NC,OR]

RewriteCond %{HTTP_HOST} ^www\.svadebki\.com$ [NC]

RewriteRule ^(.*)$ http://svadebki\.com/$1 [R=301,L]

# редирект с www на БЕЗ www

RewriteCond %{HTTP_HOST} ^www.svadebki.com$ [NC]

RewriteRule ^(.*)$ http://svadebki.com/$1 [R=301,L]

# переадресация с index.php на корень /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ http://svadebki.com/ [R=301,L]

# переадресация с index.php/ на корень /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php/\ HTTP/

RewriteRule ^index\.php/$ http://svadebki.com/ [R=301,L]

# слэш в конце домена svadebki.com/

#RewriteCond %{REQUEST_FILENAME} !-f

#RewriteCond %{REQUEST_URI} !(.*)/$

#RewriteRule ^(.*)$ /$1/ [R=301,L]

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

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_gzip.c>

mod_gzip_on Yes

mod_gzip_dechunk Yes

mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$

mod_gzip_item_include handler ^cgi-script$

mod_gzip_item_include mime ^text/.*

mod_gzip_item_include mime ^application/x-javascript.*

mod_gzip_item_exclude mime ^image/.*

mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</IfModule>

<ifModule mod_expires.c>

ExpiresActive On

ExpiresDefault "access plus 604800 seconds"

ExpiresByType text/html "access plus 1 seconds"

ExpiresByType image/gif "access plus 18144000 seconds"

ExpiresByType image/jpeg "access plus 18144000 seconds"

ExpiresByType image/png "access plus 18144000 seconds"

ExpiresByType text/css "access plus 604800 seconds"

ExpiresByType text/javascript "access plus 18144000 seconds"

ExpiresByType application/x-javascript "access plus 18144000 seconds"

</ifModule>

#########################################

2) htaccess в папке mp3

ЧПУ

#######################################

RewriteEngine On

DirectoryIndex index.php

ErrorDocument 404 /404.php

# ЧПУ MP3-мобильная версия и редирект --РАБОЧИЙ--

RewriteRule ^song/([0-9]+)/([0-9]+)/?$ /mp3/msong.php?id=$1&artist_id=$2&norec [L]

RewriteCond %{QUERY_STRING} id=([0-9]+)&artist_id=([0-9]+)$

RewriteRule ^msong.php$ /mp3/song/%1/%2/? [L,R=301]

# ЧПУ видео и редирект --РАБОЧИЙ--

RewriteRule ^videolook/([0-9]+)/$ /mp3/videolook.php?id_clip=$1&norec [L]

RewriteCond %{QUERY_STRING} id_clip=([0-9]+)$

RewriteRule ^videolook.php$ /mp3/videolook/%1/? [L,R=301]

# переадресация с index.php на /mp3

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /mp3/index\.php\ HTTP/

RewriteRule ^index\.php$ http://svadebki.com/mp3/ [R=301,L]

# переадресация с index.php/ на /mp3

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /mp3/index\.php/\ HTTP/

RewriteRule ^index\.php/$ http://svadebki.com/mp3/ [R=301,L]

###########################################

изначально так и пробовал - писать всё в корневом ht

но возникла проблема со вторым уровнем. там замешан ЧПУ, который работает только с корня, папки не видит. поэтому пришлось написать отдельный ht внутри папки mp3, к сожалению.

1) htaccess в корне. часть, которая отвечает за редирект с net на com:

# редирект с .net на .com

RewriteCond %{HTTP_HOST} ^site\.net [NC,OR]

RewriteCond %{HTTP_HOST} ^www\.site\.net$ [NC,OR]

RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]

RewriteRule ^(.*)$ http://site\.com/$1 [R=301,L]

# редирект с www на БЕЗ www

RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]

RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

здесь всё работает. если в браузере набрать site.net, то редиректит на site.com - всё верно.

но если набирать site.net/mp3 или www.site.net/mp3 - то страница загружается, хотя должно вести на site.com/mp3

2) htaccess в папке mp3:

# переадресация с index.php на /mp3

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /mp3/index\.php\ HTTP/

RewriteRule ^index\.php$ http://site.com/mp3/ [R=301,L]

это работает.

адреса с index.php

site.com/mp3/index.php
www.site.com/mp3/index.php
site.net/mp3/index.php
www.site.net/mp3/index.php

ведут на site.com/mp3

всё правильно.

# редирект с .net на .com

RewriteCond %{HTTP_HOST} ^site\.net\mp3\ [NC,OR]

RewriteCond %{HTTP_HOST} ^www\.site\.net\mp3\$ [NC]

RewriteRule ^(.*)/mp3/$ http://site\.com/mp3/$1 [R=301,L]

вот эта часть не работает. пробовал разные варианты. редиректа так и не добился

mod_rewrite конечно включен.

siv1987:
десять таких редиректов

в смысле?

в общем задача остаётся:

в htaccess сделать постоянный редирект с site.net/mp3 на site.com/mp3

а почему запрет? наоборот нужно принудительно перенаправить с .net на .com

чтоб не создавать отдельную тему....

есть сайт - site.com и site.net

site.com - главный.

site.net - зеркало, которое редиректится на site.com

здесь редирект работает исправно.

на сайте лежит папка /mp3/

здесь появляется бок.

становится доступны адреса:

site.com/mp3/ и site.net/mp3/

не пойму как от этого избавиться. Нужно чтобы было доступно ТОЛЬКО site.com/mp3/

ведь корневой htaccess присваивает правила всему сайту. правильно же?

или в папке mp3 тоже нужно сделать свой htaccess со своим редиректом?

12
Всего: 19