Помощь по редиректу через htaccess

123
tlustenko
На сайте с 18.12.2011
Offline
90
#11

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

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

siv1987
На сайте с 02.04.2009
Offline
427
#12

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

tlustenko
На сайте с 18.12.2011
Offline
90
#13

КОРНЕВОЙ 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]

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

siv1987
На сайте с 02.04.2009
Offline
427
#14

Поменять все из корня с Options +FollowSymLinks по <IfModule mod_deflate.c> на


RewriteEngine On
RewriteBase /

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

# переадресация с index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(mp3/)?index\.php\ HTTP/
RewriteRule index\.php http://svadebki.com/%1 [R=301,L]

# ЧПУ MP3-мобильная версия и редирект --РАБОЧИЙ--
RewriteRule ^mp3/song/([0-9]+)/([0-9]+)/?$ /mp3/msong.php?id=$1&artist_id=$2&norec [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} id=([0-9]+)&artist_id=([0-9]+)$
RewriteRule ^mp3/msong.php$ /mp3/song/%1/%2/? [L,R=301]

# ЧПУ видео и редирект --РАБОЧИЙ--
RewriteRule ^mp3/videolook/([0-9]+)/$ /mp3/videolook.php?id_clip=$1&norec [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} id_clip=([0-9]+)$
RewriteRule ^mp3/videolook.php$ /mp3/videolook/%1/? [L,R=301]

# слэш в конце домена svadebki.com/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteRule ^(.*)$ /$1/ [R=301,L]

htaccess из /mp3/ дропнуть

tlustenko
На сайте с 18.12.2011
Offline
90
#15

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

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

siv1987
На сайте с 02.04.2009
Offline
427
#16

Скопируйте еще раз и почистите кеш браузера

---------- Добавлено 26.11.2013 в 02:23 ----------

Еще раз скопируйте, забыл про доменный редирект :)

tlustenko
На сайте с 18.12.2011
Offline
90
#17

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

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

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

вы просто wizard!

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

N
На сайте с 02.03.2009
Offline
51
#18

siv1987, спасибо!

Не первый раз замечаю, что темы по htaccess пользуются популярностью. Может быть, стоит создать единую ветку, где можно будет задавать все вопросы по htaccess, дабы не плодить кучу мелких тем?

.
tlustenko
На сайте с 18.12.2011
Offline
90
#19

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? погуглил, но ничего внятного не нашёл.

спасибо.

siv1987
На сайте с 02.04.2009
Offline
427
#20
tlustenko:
это или всеобщая проблема или нормальное поведение браузера открывать эти ссылки.

Браузер тут вообще краем, ему что сервер дает он то и открывает.

tlustenko:
объясните пожалуйста что значит norec в htaccess? погуглил, но ничего внятного не

Это ваша защита от зацикливания при редиректе с обычных ссылок на чпу-шные. С этим параметром не срабатывает шаблон id=([0-9]+)&artist_id=([0-9]+)$ тем самым не вызывает редирект после преобразования.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий