Помогите с htacсess

Восток
На сайте с 27.09.2009
Offline
90
403

Сейчас делаю изменения в движке самописного сайта, у меня страницы есть такого вида:

site.ru/page1

site.ru/page2

они через мод реврайт:

RewriteRule ^page([0-9]+)$ /engine.php?page=$1 [L,QSA]

адресуются на скрипт.

в скрипте есть проверка входного параметра page на число, но я хотел бы сделать с помощью модрерайта проверку этого параметра, т.е. сделать защиту от мусора.

site.ru/page2... (если сейчас много точек добавить к параметрку, ошибки почему то не выскакивает)

вообщем как правильно составить правило для перевода

site.ru/page1 в /engine.php?page=$1 . при этом page должен принимать только значения от 0 до 9

Qinghua
На сайте с 01.09.2009
Offline
103
#1

защита от какого мусора?

RewriteRule ^page([0-9])$ /engine.php?page=$1

Восток
На сайте с 27.09.2009
Offline
90
#2
RewriteRule ^page([0-9])$ /engine.php?page=$1

- годен для page < 10

А если сделать вот так:

RewriteRule ^page([0-9]+)$ /engine.php?page=$1

то он пропускает страницы вида

site.ru/page2..................... (много точек не фильтруется)

Qinghua
На сайте с 01.09.2009
Offline
103
#3
- годен для page < 10
Восток:
при этом page должен принимать только значения от 0 до 9

Не понятно что вы хотите.

site.ru/page2..................... (много точек не фильтруется)

фильтруется

Восток
На сайте с 27.09.2009
Offline
90
#4

Вот тестовый скрипт:

<?php

if(isset($_GET["page"])) print $_GET["page"];

?>

и файл htaccess


RewriteEngine on
RewriteRule ^page([0-9]+)$ /test.php?page=$1 [L,QSA]

если запросить страницу как "site.ru/page4............" она выдаст тоже самое что и "site.ru/page4" (по крайне мере у меня на денвере).

Qinghua
На сайте с 01.09.2009
Offline
103
#5

у меня на локалке тоже. Но на сервере всё нормально.

Это виндовский прибомбас. Тут и в системных путях аналогично - C:\Program Files..........

не заморачивайся. и проверяй на сервере.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий