Внутренний редирект на сайте

palarmaz
На сайте с 05.04.2010
Offline
125
633

Нуждаюсь в помощи. Урлы на сайте примерно такого вида:

http://site.ru/musik/folder/085432.mp3

Нужно сделать чтобы при переходе по ссылке, посетителя редиректило на http://site.ru/musik/085432.mp3

Как догадываюсь нужно делать через htaccess, но не знаю как.:(

iguania
На сайте с 10.12.2010
Offline
72
#1

Можно и средствами php сделать, вставив приведенный ниже код до загрузки основного содержимого

if( isset($_SERVER['PATH_INFO']) )

{
// http://site.ru/musik/folder/085432.mp3
$path = $_SERVER['PATH_INFO'];
// http://site.ru/musik/085432.mp3
$path = substr($path, 0, strrpos(dirname($path), '/')) . '/' . basename($path);

// редирект
header("Location: $path");
}
Все всегда заканчивается хорошо. Если все закончилось плохо, значит, это еще не конец…
maldivec
На сайте с 04.11.2008
Offline
160
#2
iguania:
Можно и средствами php сделать, вставив приведенный ниже код до загрузки основного содержимого

Кто вам сказал, что сайт на php? :) Да и решение ваше - говнокод ужасный.

На вскидку код htaccess:

RewriteEngine on

RewriteRule ^/musik/folder/([0-9]+).mp3 /musik/$1.mp3 [L,R=301]

iguania
На сайте с 10.12.2010
Offline
72
#3

Пожалуйста, у меня есть и другой способ

RedirectMatch 301 [^/]+/[^/]+/(\d+\.mp3) %{HTTP_HOST}/$1/$2


---------- Добавлено 24.02.2012 в 12:20 ----------

maldivec:
Кто вам сказал, что сайт на php? Да и решение ваше - говнокод ужасный.

Ну и че в нем такого гавнистого?

Можно, конечно, и по-другому написать этот код

$path = $_SERVER['PATH_INFO'];
$path = preg_replace('#(/musik)/folder/(\d+\.mp3)#', '#$1/$2#', $path);
header("Location: $path");
maldivec
На сайте с 04.11.2008
Offline
160
#4
iguania:
Ну и че в нем такого гавнистого?

Потому что во-первых надо проверять, тот ли урл мы редиректим, а во-вторых

<?php

header( "Location: " . str_replace( "/folder" , "", $_SERVER["REQUEST_URI"]) );

?>

:)

iguania
На сайте с 10.12.2010
Offline
72
#5

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

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