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

Форум Apache

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

 

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

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

тема: mod Rewrite: GET запросы
 
 автор: alexander95   (24.03.2011 в 19:46)   письмо автору
 
 

Как убрать название переменной из урл? Если учесть, что она одна на страницу.
И не повлияет ли это на GET - массив? Можно ли будет продолжать доставать перменные так:

<?
$asd
=$_GET['asd'];
?>

?

  Ответить  
 
 автор: cheops   (24.03.2011 в 19:56)   письмо автору
 
   для: alexander95   (24.03.2011 в 19:46)
 

А что в переменной (строка, число)?

>И не повлияет ли это на GET - массив? Можно ли будет продолжать доставать перменные так:
Нет не повлияет, Web-сервер преобразует адрес в канонический перед вызовом, т.е. скрипт будет вызываться так же, как и без mod_rewrite, который создает только псевдоним страницы.

  Ответить  
 
 автор: alexander95   (24.03.2011 в 20:02)   письмо автору
 
   для: cheops   (24.03.2011 в 19:56)
 

сама переменная - строка, в ней - число.
но лучше сделать на оба случая, мне может еще пригодиться второй вариант.

  Ответить  
 
 автор: cheops   (24.03.2011 в 20:06)   письмо автору
 
   для: alexander95   (24.03.2011 в 20:02)
 

Нужно больше подробностей, если не сложно приведите как выглядит типичная строка? Дело в том, что под универсальное выражение будут подходить все URL, под очень узкое - вообще ничего подходить не будет. Чтобы составить адекватное правило, хорошо бы поглядеть на строку запроса.

  Ответить  
 
 автор: alexander95   (24.03.2011 в 20:11)   письмо автору
 
   для: cheops   (24.03.2011 в 20:06)
 

>Дело в том, что под универсальное выражение будут подходить все URL
Кажется, это именно то что мне нужно, если я Вас правильно понял.

что есть | заменить на

www.site.ru/page=1 | www.site.ru/1
www.site.ru/show?id=1 | www.site.ru/show?1

Да, кстати, для убирания .php у меня уже написано. Вроде бы, там может применяться только одно правило, так? Может быть, тогда в одном сразу и .php и GET убрать?

  Ответить  
 
 автор: cheops   (24.03.2011 в 20:21)   письмо автору
 
   для: alexander95   (24.03.2011 в 20:11)
 

Скорее всего вам придется пользоваться правилами вида
RewriteEngine on
RewriteBase /
RewriteRule ^page/([\d]+)$ /page.php?id=$1 [L]
RewriteRule ^show/([\d]+)$ /show.php?id=$1 [L]

Т.е. адреса будут вида
www.site.ru/show.php?id=1 => www.site.ru/show/1
www.site.ru/page.php?id=1 => www.site.ru/page/1

  Ответить  
 
 автор: alexander95   (24.03.2011 в 20:25)   письмо автору
 
   для: cheops   (24.03.2011 в 20:21)
 

Хорошо было бы, только у меня не только две эти страницы могут быть:)
то есть что то вроде этого:
www.site.ru/{любое имя страницы}.php?{любое имя переменной}=...

  Ответить  
 
 автор: cheops   (24.03.2011 в 20:28)   письмо автору
 
   для: alexander95   (24.03.2011 в 20:25)
 

Можно поступить следующим образом
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)/([\d]+)$ /$1.php?id=$2 [L]

  Ответить  
 
 автор: alexander95   (24.03.2011 в 20:32)   письмо автору
 
   для: cheops   (24.03.2011 в 20:28)
 

RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)/([\d]+)$ /$1.php?$2=$3 [L]

может, так? там же любое имя переменной также..

  Ответить  
 
 автор: cheops   (24.03.2011 в 20:34)   письмо автору
 
   для: alexander95   (24.03.2011 в 20:32)
 

Нет, у вас всего две скобки, следовательно может быть только $1 и $2, в качестве имени параметра скорее всего придется использовать одно и тоже имя.

  Ответить  
 
 автор: alexander95   (24.03.2011 в 20:44)   письмо автору
 
   для: cheops   (24.03.2011 в 20:34)
 

А, все, понял! Это я запутался, извиняюсь.

Спасибо большое.

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

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