Назад | Перейти на главную страницу

Lighttpd перезаписывает и пустую страницу

Я настроил несколько перезаписей lighttpd, из которых одна не работает. Это строка, которая работает не так, как должна, и вызывает отображение белой (пустой) страницы:

url.rewrite-once = (    
...
"^/search/([^\/]+)*/([^\/]+)*/([0-9]+)$" => "search.php?t=$1&k=$2&p=$3",
...
);

Также обратите внимание, что это единственный параметр с 3 параметрами, все остальные в разделе имеют 0-2. Я нашел эту ошибку в журнале ошибок lighttpd:

2011-01-07 17:13:09: (mod_rewrite.c.374) execution error while matching:  -8

Может кто поможет? Спасибо.

Не пытайтесь делать слишком много в mod_rewrite. Похоже, вы пытаетесь ввести только цифры в третьей скобке. Оставьте проверку параметров внутри скрипта.

Я могу поручиться за тот факт, что простое регулярное выражение с однократной перезаписью, подобное этому, работает с тремя параметрами, разделенными косой чертой, поскольку вы, похоже, стремитесь:

"^/x50/(.*?)/(.*?)/(.*?)$" => "/script.php?b=$1&a=$2&f=$3&p=x50",

Позвольте сопоставлению регулярных выражений работать на вас. Не беспокойтесь о косых чертах, просто проверьте параметры внутри скрипта. (Как и в любом случае.)