.htaccess - как сделать редирект с передачей GET-параметра?

referees
На сайте с 13.12.2009
Offline
115
5107

в корне сайта есть index.php

также есть папка content, в ней - файлы:

*******

index.php

content:

---file_0

---file_1

---file_2

******

хочется, что бы по запросу имя_сайта/file_0 происходило перенаправление на index.php, и в него передавался параметр с названием файла (file_0)

а .htaccess разместил правило:


RewriteRule ^([-a-zA-Z0-9_]+)/? index.php?link=$1 [L]

однако в качестве параметра ($_GET['link']) в запросе имя_сайта/file_0 приходит

index

а по идее должно приходить

file_0

как получить нужно значение?

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

пособите, пожалуйста.

вДропе.ру (http://vdrope.ru) — поиск слов в освобождающихся .ru и .рф доменах
Joker-jar
На сайте с 26.08.2010
Offline
154
#1

Можно реврайт сделать без GET-параметра, а информацию об имени файла вытаскивать из $_SERVER['REQUEST_URI'] (немного обработав регуляркой)

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

Потому что регулярка неправильная ^([-a-zA-Z0-9_]+) этот класс соответствует только index

RewriteRule ^(file_[0-9]+) index.php?link=$1 [L]

referees
На сайте с 13.12.2009
Offline
115
#3
Joker-jar:
Можно реврайт сделать без GET-параметра, а информацию об имени файла вытаскивать из $_SERVER['REQUEST_URI'] (немного обработав регуляркой)

Спасибо большое, из этой зацепки уже можно нужное реализовать. Не подумал про сам запрос(

Пока буду так делать, но все же очень хочется сделать по-правильному через конкретное правило, если это конечно возможно.

---------- Добавлено 19.05.2012 в 20:20 ----------

siv1987:
Потому что регулярка неправильная ^([-a-zA-Z0-9_]+) этот класс соответствует только index

RewriteRule ^(file_[0-9]+) index.php?link=$1 [L]

Спасибо большое, я понял, что ошибка именно в регулярке и что это возможно.

Если вы сходу напишите, как написать регулярку для произвольного имени файла (может содержать кириллицу, цифры и латиницу, символы типа звездочки, дефиса, и т.д.), то вы мне очень поможете.

Голова уже совсем не варит(

*ни в коем случае не напрашиваюсь на халявное решение.

sigor
На сайте с 02.05.2011
Offline
15
#4

Может как то так:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domen\.com$
RewriteRule ^(file_[0-9])$ http://domen.com/index.php?link=$1 [R=301,L]
[Удален]
#5

Дабы не создавать новую тему, напишу тут.

Помогите, необходимо сделать редирект с

http://site1.ru/?d=80&p=&order=date на http://site2.ru/p123/realn/hit

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