Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переменные GET в RewriteRule
 
 автор: Ильдар   (23.12.2011 в 10:56)   письмо автору
 
 

Измучился.

Хочу заменить запроса вида
index.php?id=shipping
на
http://example.com/index.php?option=com_content&view=article&id=2&Itemid=102

вот так запарился я, путаюсь все, помогите пжлста

  Ответить  
 
 автор: cheops   (23.12.2011 в 12:02)   письмо автору
 
   для: Ильдар   (23.12.2011 в 10:56)
 

index.php тоже расположен на example.com?

  Ответить  
 
 автор: Ильдар   (23.12.2011 в 14:41)   письмо автору
 
   для: cheops   (23.12.2011 в 12:02)
 

да, отписал неправильно было.
index.php?id=shipping
на
index.php?option=com_content&view=article&id=2&Itemid=102

  Ответить  
 
 автор: Sfinks   (23.12.2011 в 16:18)   письмо автору
 
   для: Ильдар   (23.12.2011 в 14:41)
 

Тоже мучался с этим. У меня сложилось такое впечатление, что от QUERY_STRING в RewriteRule избавиться нельзя =( По крайней мере я не нашел варианта. Выкрутился так:
.htaccess
RewriteCond %{QUERY_STRING} ^id=shipping$
RewriteRule ^index.php^ redir.php [L]

redir.php
<?
  header
("HTTP/1.1 301 Moved Permanently");
  
header("Location: http://example.com/index.php?option=com_content&view=article&id=2&Itemid=102");
?>

Не очень красиво, но работает.

  Ответить  
 
 автор: Ильдар   (23.12.2011 в 16:24)   письмо автору
 
   для: Sfinks   (23.12.2011 в 16:18)
 

мне не нужен редирект, мне нужно сделать подмену информации

  Ответить  
 
 автор: Sfinks   (23.12.2011 в 16:29)   письмо автору
 
   для: Ильдар   (23.12.2011 в 16:24)
 

Во втором варианте R=301 уберите тогда.

  Ответить  
 
 автор: Sfinks   (23.12.2011 в 16:30)   письмо автору
 
   для: Ильдар   (23.12.2011 в 16:24)
 

А если не сработает, то можно в redir.php вместо первого варианта написать
<?
  
include "index.php?option=com_content&view=article&id=2&Itemid=102";
?>

  Ответить  
 
 автор: Sfinks   (23.12.2011 в 16:28)   письмо автору
 
   для: Ильдар   (23.12.2011 в 14:41)
 

Хотя стоп... Я то переводил с обычных ссылок на ЧПУ и мне надо было полностью избавиться от QUERY_STRING, а у вас заменяется на другую. Разве вот так не работает?
RewriteCond %{QUERY_STRING} ^id=shipping$ 
RewriteRule ^index.php$ index.php?option=com_content&view=article&id=2&Itemid=102 [R=301,L]

  Ответить  
 
 автор: Ильдар   (23.12.2011 в 16:42)   письмо автору
 
   для: Sfinks   (23.12.2011 в 16:28)
 

спасибо! работает отлично
RewriteBase /
RewriteCond %{QUERY_STRING} ^id=shipping$  
RewriteRule ^index.php$ index.php?option=com_content&view=article&id=2&Itemid=102 [L]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования