Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   htaccess mod_rewrite RewriteRule - передать get параметры (https://javascript.ru/forum/server/28877-htaccess-mod_rewrite-rewriterule-peredat-get-parametry.html)

Раед 05.06.2012 18:43

htaccess mod_rewrite RewriteRule - передать get параметры
 
Есть RewriteRule
Код:

RewriteRule ^(([^\\/]+/)*[^\./\\]+\.raed\(tmpl\))$ templator/manager.php?file=$1&$4
Он работает, но get-параметры запроса теряются

Попробовал исправить так:
RewriteRule ^(([^\\/]+/)*[^\./\\]+\.raed\(tmpl\))*!*(\?([./]+))?*/!*$ templator/manager.php?file=$1*!*&$4*/!*

Не помогло. Подскажите, в чём ошибка

devote 05.06.2012 18:49

RewriteRule ^(([^\\/]+/)*[^\./\\]+\.raed\(tmpl\))$ templator/manager.php?file=$1&$4 [QSA]

Раед 05.06.2012 19:21

Цитата:

Сообщение от devote
RewriteRule ^(([^\\/]+/)*[^\./\\]+\.raed\(tmpl\))$ templator/manager.php?file=$1&$4 [QSA]

Спасибо. А что такое [QSA] и где по это можно почитать.
И ещё вопрос, какой синтаксис у регулярных выражений в htaccess, PCRE или какой-то другой

9xakep 05.06.2012 20:24

Раед,
сохранил эту статью, на всякий случай, держи: http://beget.ru/art_htaccess

Раед 05.06.2012 20:48

9xakep,
Спасибо, наконец-то нашлось что-то адекватное, а то обычно в статьях на эту тему одни примеры

observer 05.06.2012 21:50

Цитата:

Сообщение от Раед (Сообщение 179197)
Есть RewriteRule
Код:

RewriteRule ^(([^\\/]+/)*[^\./\\]+\.raed\(tmpl\))$ templator/manager.php?file=$1&$4
Он работает, но get-параметры запроса теряются

Попробовал исправить так:
RewriteRule ^(([^\\/]+/)*[^\./\\]+\.raed\(tmpl\))*!*(\?([./]+))?*/!*$ templator/manager.php?file=$1*!*&$4*/!*

Не помогло. Подскажите, в чём ошибка

Зачем вы так мучаете Apache? Самое простое решение (к которому вы в любом случае рано или поздно придете сами) сводится к указанию только одного правила -- все запросы переадресовывать одному сценарию, который сам разбирает REQUEST_URI и др и строит приложение.

Раед 05.06.2012 22:22

Цитата:

Сообщение от observer
Зачем вы так мучаете Apache? ... все запросы переадресовывать одному сценарию, который сам разбирает REQUEST_URI и др и строит приложение.

PHP тратит меньше ресурсов, чем mod rewrite в htaccess?

observer 05.06.2012 22:28

Цитата:

Сообщение от Раед (Сообщение 179268)
PHP тратит меньше ресурсов, чем mod rewrite в htaccess?

На что ему их тратить? На разбиение адресной строки на части?

Раед 05.06.2012 22:42

Цитата:

Сообщение от observer
На разбиение адресной строки на части?

Да.
По крайней мере, судя по вашему посту
Цитата:

Сообщение от observer
Зачем вы так мучаете Apache?

, mod rewrite их тратит

melky 05.06.2012 23:58

observer, прав. тем более, что такое решение гибче.

такой способ я видел, когда просматривал сорцы LiveStreet...

вот пример


Часовой пояс GMT +3, время: 14:47.