- помогите с mod_rewrite, serg, 18:53 , 17-Мрт-10 (1)
ну хоть скажите "RTFM", а то 3 дня тишина...
- помогите с mod_rewrite, cuad0, 04:20 , 19-Мрт-10 (2)
>ну хоть скажите "RTFM", а то 3 дня тишина... RTFM ) Не забывай, в общем виде GET-урлы имеют вид /?var1=val1&var2=val2&var3=val3... у POST-ов урлы нормальные, без этого кавардака. впрочем, если в script.pl форма парсится вручную, то на правильный формат можно забить болт с высокой колокольни. Задача mod_rewrite - переписывать url запроса. На этом можно организовать ЧПУ, например. Это было бы понятно для обычных страниц на сайте, чтобы юзер в браузере видел что-то вроде site.com/news/latest или /news/2010/01/01 и не нервничал из-за обилия &, =, + и, возможно, A%20B%FD%A8%92.. Но в данном случае, можно задуматься, а стоит ли городить ЧПУ для субмита форм. Если форма субмитит POST-ом, то юзер все равно увидит только site.com/script.pl. С GET-ом сложнее, но такова его природа. А mod_rewrite из GET-запроса сделать POST не сможет. Если данная форма - это универсальная добавлялка контента (где сам контент POST-ится, а параметры, описывающие к чему этот контент относится указаны в виде ЧПУ в action формы), то про GET можно забыть. И в итоге задача сводится к переводу урла /news/param1/param2 в get-вид к script.pl. Можно, конечно, в форму накидать hidden-ов, в них указать все эти news, param* и не париться в mod_rewrite, а тупо POST-ить на script.pl, но если уж хочется побаловаться... В общем, составляем регулярку, которой последовательно превращаем /news... в /script.pl?... Но помни, ровно в полночь url превратится в ...)) Помни, что регулярка - это конечный автомат и если заранее неизвестно, сколько может быть param-ов в урле, то волшебства не получится (на всех может back-reference-ов не хватить, да и вообще все зависнет...). А если всегда столько же, по пофиг. Надо что-то навроде #/(.+)/(.+)/(.+)#/script.pl?\1&\2&\3# (или как-то так, тут может надо будет обуздать жадность квантификаторов). Это, ессно, не формат mod_rewrite (мне лень :) ) и вообще тут может быть написана полная туфта, сходная с тем, что я генерил, когда только открыл книжку по регуляркам. Но мне простительно, т.к. предыдущий рабочий день был тяжелым, я зае... устал, сейчас 4 утра и я еще не сплю :))) Но, надеюсь, общее направление я указал. RTFM ;) Можно perldoc perlre, можно книжку "Регулярные выражения", можно гугл.
- помогите с mod_rewrite, serg, 07:07 , 21-Мрт-10 (3)
Спасибо за ответ!>Это было бы понятно для обычных страниц на сайте, чтобы юзер в >браузере видел что-то вроде site.com/news/latest или /news/2010/01/01 и не нервничал из-за >обилия &, =, + и, возможно, A%20B%FD%A8%92.. > вообще я хочу это использовать, чтобы скрыть технологию, а именно cgi-bin/script.pl
- помогите с mod_rewrite, cuad0, 16:02 , 22-Мрт-10 (4)
>Спасибо за ответ! > >>Это было бы понятно для обычных страниц на сайте, чтобы юзер в >>браузере видел что-то вроде site.com/news/latest или /news/2010/01/01 и не нервничал из-за >>обилия &, =, + и, возможно, A%20B%FD%A8%92.. >> > >вообще я хочу это использовать, чтобы скрыть технологию, а именно cgi-bin/script.pl Так сделайте action="http://site.com/post" method="POST" в форме, а в .htaccess что-то типа RewriteRule ^post$ /cgi-bin/script.pl [L,QSA] насчет флагов - лень глядеть правильно ли, брал из похожего примера
- помогите с mod_rewrite, serg, 02:29 , 25-Мрт-10 (5)
Спасибо за ответ! >RewriteRule ^post$ /cgi-bin/script.pl [L,QSA] Вот так не получается в том-то и дело, он ищет cgi-bin после DocumentRoot DocumentRoot у меня /home/site.ru/docs
- помогите с mod_rewrite, cuad0, 13:16 , 25-Мрт-10 (6)
>Спасибо за ответ! > >>RewriteRule ^post$ /cgi-bin/script.pl [L,QSA] > >Вот так не получается в том-то и дело, он ищет cgi-bin после >DocumentRoot >DocumentRoot у меня /home/site.ru/docs Прямой вызов в браузере /cgi-bin/script.pl работает? А ScriptAlias /cgi-bin/ "/full/path" задан? А <Directory> для каталога cgi-bin? Если RewriteRule не работает, почитайте про флаги ([L,QSA]), может эти вам не подходят.
- помогите с mod_rewrite, serg, 04:42 , 26-Мрт-10 (7)
Спасибо за ответ! >Прямой вызов в браузере /cgi-bin/script.pl работает? работает >А ScriptAlias /cgi-bin/ "/full/path" задан? да, /home/site.ru/cgi-bin >Если RewriteRule не работает, почитайте про флаги ([L,QSA]), может эти вам не >подходят. rewrite срабатывает, но он пытается перекинуть на скрипт в каталоге /home/site.ru/docs/cgi-bin/script.pl вместо /home/site.ru/cgi-bin/script.pl
- помогите с mod_rewrite, cuad0, 11:37 , 26-Мрт-10 (8)
>rewrite срабатывает, но он пытается перекинуть на скрипт в каталоге /home/site.ru/docs/cgi-bin/script.pl вместо >/home/site.ru/cgi-bin/script.pl Смотрите и проверяйте настройки апача. А cама форма, случаем не находится на странице site.ru/docs/bla-bla.html? Тогда action формы и свой RewriteRule в студию. Еще читайте в доках апача про ScriptAliasMatch, может вам и его хватит.
- помогите с mod_rewrite, serg, 03:27 , 27-Мрт-10 (9)
>Еще читайте в доках апача про ScriptAliasMatch, может вам и его хватит. >спасибо, разбираться некогда, а ScriptAliasMatch хватило ))
|