Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > mod_rewrite


Автор: kvv 7.6.2006, 11:28
Пишу:
Код
RewriteEngine On
RewriteBase /
RewriteRule ^foto/foto([0-9]+).jpg$ foto.php?id=$1 [NC]


Набираю например такой адрес: http://sccs2006.jino-net.ru/foto/foto5.jpg
Скрипт foto.php выполняется, но параметр id не передается. Как исправить? 

Автор: AztEK 7.6.2006, 11:53
Ты пишешь: RewriteBase /. Это, насколько я знаю для корня сервера. А у тебя папка foto. Тогда:
Код

RewriteEngine On
RewriteBase /foto/
RewriteRule ^foto/foto([0-9]+).jpg$ foto.php?id=$1 [NC]


Вот.
Ещё тут почитай: http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=1386 

Автор: kvv 7.6.2006, 12:01
Юзер вводит такой урл:
http://sccs2006.jino-net.ru/foto/foto5.jpg
Запуститься должен этот скрипт:
http://sccs2006.jino-net.ru/foto.php?id=5

По-моему, надо писать "RewriteBase /" все-таки, ведь все пути написаны односительно верхнего каталога. Но пробовал и так, и так - результат не изменился.



 

Автор: GZep 12.7.2006, 13:27
Там на конце надо флаг поставить:
####################
•  QSA ( qsappend ) добавляет исходные параметры запроса ( query string ) к замене. Если замена не включает в себя новые параметры запроса, то исходные параметры запроса добавляются автоматически. Если же включает, то без флага QSA исходные параметры запроса будут утеряны. 
####################
получится:

RewriteEngine On
RewriteBase /foto/
RewriteRule ^foto/foto([0-9]+).jpg$ foto.php?id=$1 [NC,QSA]

При перечислении флагов после "," пробел ставить нельзя.

Автор: kvv 12.7.2006, 19:25
Спасибо)

Хотя тогда вопрос решил парсингом самой строки запроса в скрипте. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)