Форум программистов, компьютерный форум, киберфорум
Наши страницы
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/43: Рейтинг темы: голосов - 43, средняя оценка - 4.91
Кузнец
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
1

Директива RewriteRule и параметры в url

21.10.2010, 19:01. Просмотров 7901. Ответов 2
Метки нет (Все метки)

Можно ли использовать в .htaccess такой код

Код
RewriteEngine on
RewriteRule ^list/([a-z0-9\.\-_]*)/$ /list.php?category=$1 [L]
RewriteRule ^list.php?category=([a-z0-9\.\-_]*)$ /list/$1/ [R=301,L]
Если да, то почему при переходе на list.php?category=news, редирект происходит на list/?category=news
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2010, 19:01
Ответы с готовыми решениями:

Директива RewriteRule
Существуют ссылки вида: http://cms.ru/index.php?page=admin_main Хочу их изменить на:...

RewriteRule меняет url
Привет! хочу сделать RewriteRule с поддомена на порт, юзаю: Options +FollowSymLinks RewriteEngine...

RewriteRule при разных url
Подскажите пожалуйста, Есть страницы 2уровня и для них: RewriteRule ^(.*).html$ index.php?p=$1...

Изменение части url через .htaccess (RewriteRule)
Доброго времени суток! Уже битый день борюсь с .RewriteRule и пока тщетно. Коротко: Мне...

Настроить RewriteRule для замены хоста в *чужих* URL
Есть Домашнийкомпьютер с Windows 7 SP 1Rus 64 bit. На нём локально на 127.0.0.1:80 установлен...

2
mik-a-el
Администратор
74012 / 43139 / 243
Регистрация: 10.04.2006
Сообщений: 12,840
21.10.2010, 19:03 2
Как сделать редирект посредством .htaccess?
0
Кузнец
11 / 11 / 0
Регистрация: 05.11.2009
Сообщений: 78
21.10.2010, 22:33  [ТС] 3
В этом случае происходит бесконечный редирект на list/news/?category=news (как написано в теме Как сделать редирект посредством .htaccess?)

Код
RewriteCond %{REQUEST_URI} ^/list\.php$
RewriteCond %{QUERY_STRING} ^category=([a-z0-9\.\-_]*)$
RewriteRule ^list\.php$ /list/%1/ [L,R=301]

Если не понятно, могу подробнее объяснить

В общем на сайте при запросе страницы site.ru/list.php?category=news она должна делать редирект 301 на страницу site.ru/list/news/, которая в свою очередь должна выдавать тоже, что и site.ru/list.php?category=news, и на этом завершаться, не должно происходить никаких бесконечных циклов.

Добавлено через 3 часа 9 минут
В общем с RewriteRule по-моему так нельзя сделать. Как не пытался, всё не получается,
решил проблему другим способом с помощью редиректов на PHP

Если кому интересно, сделал следующим образом:

В list.php добавил такой код:

PHP
1
2
3
4
5
6
7
8
9
10
11
$request_uri = getenv("REQUEST_URI"); //Берем параметры адресной строки
 
//Если они соответствуют list.php?category=<текст>,
//то перенаправляем на list/<текст>/
 
if(preg_match('!/list\.php\?category=([a-z0-9\.\-_]*)!si',$request_uri,$text))
{
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://site.ru/list/$text[1]/");
  exit();
}
В .htaccess оставил следующие строки:

Perl
1
2
3
4
5
6
7
8
9
10
11
RewriteEngine on
 
#Перенаправляем на страницу со слэшем в конце
RewriteRule ^list$ /list/ [R,L]
#Выводим содержимое list.php
RewriteRule ^list/$ /list.php [L]
 
#Перенаправляем на страницу со слэшем в конце
RewriteRule ^list/([a-z0-9\.\-_]*)$ /list/$1/ [R,L]
#Выводим содержимое list.php?category=<текст>
RewriteRule ^list/([a-z0-9\.\-_]*)/$ /list.php?category=$1 [L]
Если есть замечания, то буду очень рад выслушать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2010, 22:33

RewriteCond влияет толко для один, следушчи RewriteRule. можно как-то превишать количество RewriteRule
здраствуите, вот что интересно, сделаю mod_rewrite и для етого в .htaccess фаиле пишу ...

Как скрыть параметры URL и передать их методом пост используя Url.Action()
Здравствуйте. У меня в представлении на сайте есть ссылка, которая формируется в методе действии...

Параметры URL
Всем привет! Допустим есть такая ссылка : http://emptyurl.em/empty1.php?empty . Таков вопрос: как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru