Forum Webscript.Ru

Программирование => PHP => Тема начата: yusoft от 28 Октября 2003, 13:44:57

Название: Трабл с mod_rewrite
Отправлено: yusoft от 28 Октября 2003, 13:44:57
Подскажите, плз, чайнику, как решить такую проблему:
хочу изменить структуру сайта, оптимизировав ее для поисковиков, изменив вызовы PHP-скрипта с
http://site.ru/doc.php?id=xxx на http://site.ru/doc/xxx

Для этого прописываю в .htaccess строки

RewriteEngine on
RewriteRule ^(.*)doc/(.*)$ doc.php?id=$1

Скрипт вызывается, но параметры ему не передаются (переменной id значение не присваивается),
хотя конструкция site.ru/doc.php?id=xxx работает нормально :(

Что я делаю не так?
Название: Трабл с mod_rewrite
Отправлено: NeoNox от 28 Октября 2003, 14:00:57
И что у тебя в $1 по-твоему???
Я бы написал вроде:
RewriteEngine on

RewriteRule ^/doc/+(.*)$   /полный/путь/doc.php?id=$1 [NC,L]
Название: Трабл с mod_rewrite
Отправлено: praw2003 от 28 Октября 2003, 14:07:19
Кстати,  тот же Яндекс и Рамблер умудряются довольно прилично индексировать сайт с "кривыми" ссылками. Мож не стОит овчинка выделки?
Название: Трабл с mod_rewrite
Отправлено: yusoft от 28 Октября 2003, 14:11:59
Цитировать
NeoNox:
И что у тебя в $1 по-твоему???
Я бы написал вроде:
RewriteEngine on

RewriteRule ^/doc/+(.*)$ /полный/путь/doc.php?id=$1 [NC,L]


Сделал так, как ты предлагаешь, не помогло :(

Содержимое .htaccess

RewriteEngine on
RewriteRule ^/doc/+(.*)$ doc.php?id=$1 [NC,L]


Строка запроса http://localhost/doc/1

Файл doc.php:
echo $id;
?>

Сообщение об ошибке:
Notice: Undefined variable: id in z:\\home\\localhost\\www\\doc.php on line 3

Т.е. получается, что скрипту не передается значение переменной.
В чем может быть проблема?
Название: Трабл с mod_rewrite
Отправлено: yusoft от 28 Октября 2003, 14:17:19
Цитировать
praw2003:
Кстати, тот же Яндекс и Рамблер умудряются довольно прилично индексировать сайт с "кривыми" ссылками. Мож не стОит овчинка выделки?


... заодно хочу разобраться с mod_rewrite. В документации описано просто, а не работает. А насчет "кривых ссылок" - "прямые" и смотрятся эстетичнее, и шансов на их нормальное индексирование больше.
Название: Трабл с mod_rewrite
Отправлено: MadDog от 28 Октября 2003, 16:35:37
yusoft
А ты свою переменную попробуй так:
echo $_GET[\'id\'];
?>
Название: Трабл с mod_rewrite
Отправлено: yusoft от 28 Октября 2003, 17:33:46
Цитировать
MadDog:
А ты свою переменную попробуй так:
echo $_GET[\'id\'];
?>


Не помогает, сообщение то же :(

Может, проблема в софте? Я пользуюсь пакетом Денвер (http://web.dklab.ru) (Apache+PHP+MySQL) под WinNT 4.0
Название: Трабл с mod_rewrite
Отправлено: hanslinger от 29 Октября 2003, 08:38:08
Та же фигня :(
Название: Трабл с mod_rewrite
Отправлено: MadDog от 29 Октября 2003, 09:16:48
yusoft
Сноси ты этот Денвер. Качай всё по отдельности и устанавливай. Других мыслей у меня нет, т.к. у меня всё работает нормально.
Название: Трабл с mod_rewrite
Отправлено: hanslinger от 29 Октября 2003, 19:21:37
Может быть, я изрядно туплю :), но, судя из логики PCRE, должно "doc/?id=3" заменяться на "doc.php?id=3". Так у меня работает.
Название: Трабл с mod_rewrite
Отправлено: hanslinger от 29 Октября 2003, 19:23:01
Кстати, рекомендация качать все по отдельности весьма дельная. Я скачал phpdev, посмотрел на него и скачал все заново :).