rewrite rules?

natalie

Новичок
rewrite rules?

Здравствуйте,

Задача: есть article.php файл, который, получая id статьи методом Get или Post (это не важно, лишь бы получать) извлекает из базы инфу для этого id-шника, и отображает пользователю эту инфу.

Но в строке браузера это будет выглядеть как .../article/id.html, то есть например .../article/25.html

как объяснить программе, что если в строке броузера ввели ..../article/25.html, нужно показать пользователю страницу article.php, которой передать id = 25, причем в строке браузера дожно остаться .../article/25.html

пыталась сделать вот что: создала файл .htaccess, кинула рядом с файлом article.php, в нем написала:

RewriteEngine On

RewriteRule [^]/article/([0-9]+) article.php

чтоб хотя бы /article/25.htm заменить на article.php ...

я хоть в правильном направлении думаю? и как передать сам id-шник ?

спасибо
 

boombick

boombick.org
http://www.egoroff.spb.ru/portfolio/apache/

-~{}~ 11.12.06 16:48:

+ official docs: http://httpd.apache.org/docs/1.3/misc/rewriteguide.html
 

natalie

Новичок
не заработало,

дело было так:

- на сервере есть папка.

- в папке лежит файл article.php (http://208.109.13.212/article/article.php)

- в файле article.php написано:
Код:
<?php 
$id = isset($_GET['id'])?$_GET['id']:'';
echo "---- id= ".$id."----";
?>
- в той же папке, что файл article.php лежит файл .htaccess

- в нем написано:
Код:
ErrorDocument 404 /index.php

RewriteEngine On

RewriteRule ^/article/(\d+) article.php?id=$1
- я ввожу в строке браузера:
http://208.109.13.212/article/article/22.html

в надежде, что это чудесным образом превратится в

http://208.109.13.212/article/article.php?id=22

но ничего не превращается: "No input file specified."

хостинг на GoDaddy

Спасибо
 

natalie

Новичок
а для Вас сработало? мне все-равно говорит "No input file specified."

http://208.109.13.212/article/article/22
 

StUV

Rotaredom
mike
а проверить ?

natalie
слэш первый убери - т.е.:
RewriteRule ^article/(\d+) article.php?id=$1
 

natalie

Новичок
убрала слэш... может я не туда .htaccess кладу или не так его делаю?
 

StUV

Rotaredom
хм...

/article/article.php:

<?php
$id = isset($_GET['id']) ? $_GET['id'] : 'null';
echo "---- id= ".$id."----";
?>

/article/.htaccess:

RewriteEngine On
RewriteRule ^article/(\d+) article.php?id=$1


для урла вида
http://test/article/article/22.html

все работает

natalie
м.б. у тебя mod_rewrite не подключен ? =)

-~{}~ 12.12.06 13:45:

natalie
+ вопрос: у тебя в корне сайта есть .htaccess с инструкциями для реврайта ?
 

natalie

Новичок
ага, пойду искать, может и не подключен

спасибо

-~{}~ 12.12.06 16:14:

не, в корне сайта инструкций нет,

но rewrite точно работает, потому, что это сработало, когда я .htaccess положила в корень:

RewriteRule ^.*$ index.php
 

MiksIr

miksir@home:~$
Идите последовательно.
Опишите RewriteRule ^(.*)$ article.php?id=$1 и далее меняйте правило.
 

natalie

Новичок
ага - вот это сработало! я пробую

-~{}~ 12.12.06 19:22:

да не, на другом сервере этот же .htaccess работает корректно. видимо я на этом и успокоюсь.

спасибо :)
 
Сверху