Forum Webscript.Ru
Общие => Веб Сервера => Тема начата: Nickolaz от 04 Марта 2005, 14:20:34
-
Задача:
Есть площадка www.xxx.ru
В корневом каталоге находятся search.php и др. скрипты
Необходимо обрабатывать ссылки вида www.xxx.ru/en/search.php www.xxx.ru/fr/search.php и т д
Да так, чтобы скрипту шли параметры и по GET и по POST
Реальное обращение естесственно к www.xxx.ru/search.php (например, добавляется по GET LANGUAGE=en).
Для GET достаточно
RewriteRule ^en/(\\w+)\\.php http://www.xxx.ru/$1.php?LANGUAGE=en&%{QUERY_STRING}
Но POST при этом теряется.
Какие правила прописать в .htaccess? И возможно ли это вообще?
-
Да так, чтобы скрипту шли параметры и по GET и по POST
Вообще, если можно будет использовать только один метод - я не против...
Но поиск из формы - только через POST
-
Nickolaz:
поиск из формы - только через POST
это заблуждение.
правильно это утверждение звучит так: поиск из формы - через GET и только через GET.
Nickolaz:
Но POST при этом теряется.
никогда не понимал людей, применяющих реврайт, и при этом перенаправляющих на урл!
мало того, что это заставляет браузер сделать лишний запрос - так еще и проблемы типа вышеприведенной вылезают.
-
такие ответы прошу держать при себе.
1. Из формы - только через POST. Таково задание и это НЕ заблуждение
2. Браузер делает ЕДИНСТВЕННЫЙ запрос - http://www.xxx.ru/en/search.php с передачей строки, которую надо найти.
Иногда лучше жевать чем писать.
Я просил дать ответы на вопросы: "Какие правила прописать в .htaccess? И возможно ли это вообще?"
Вопрос актуален до сих пор.
-
Nickolaz прислушайся к Ромику - он дело говорит.
Nickolaz:
1. Из формы - только через POST. Таково задание и это НЕ заблуждение
RewriteRule ^en/(\\w+)\\.php http://www.xxx.ru/$1.php?LANGUAGE=en&%{QUERY_STRING}
Nickolaz:
2. Браузер делает ЕДИНСТВЕННЫЙ запрос - http://www.xxx.ru/en/search.php с передачей строки, которую надо найти.
А спорим что не один?
-
хорошо. Нужно сделать на одной площадке много языков. Но переписывать постоянно скрипты не могу. Надо сделать так, чтобы по ссылке www.xxx.ru/en/script.php было дано управление скрипту script.php из корневой директории, но при этом передать всё, что должно прийти из браузера и еще язык, т.е. "en". Разные скрипты используют разные методы. search.php в моём предыдущем примере использовал метод POST. Пример правила я привел для GET, а нужен для POST.
У меня нет возможности исправлять скрипты, но есть - .htaccess
Какие возможны варианты, кроме создания реальных папок для каждого языка?
А насчет запросов к браузеру - что-то я не понял, как это он делает несколько запросов? Он делает запрос http://www.xxx.ru/en/search.php На сервере через mod_rewrite выдается скрипт http://www.xxx.ru/search.php - так зачем еще запрос?
-
Ну учитывая то, что ты понимаешь что на веревке, которую ты просишь, запросто можно повесится, держи ключ для RewriteRule строки - [PT].
Nickolaz:
А насчет запросов к браузеру - что-то я не понял, как это он делает несколько запросов?
1. посылаешь запрос из search.php на сервер
2. сервер обрабатывает RewriteRule и посылает второй(!) запрос на http://www.xxx.ru/$1.php?LANGUAGE=en
-
NeoNox: thanx a lot!
Не подскажешь, где доки взять по mod_rewrite?
Просто я никогда с ним не работал, а тут срочный вопрос (одного дня) - поэтому я так агрессивно и спрашивал...
Теперь, когда всё временно устроил, можно поглубже почитать.
А по поводу запросов - я говорил про браузер пользователя. А то что два запроса отправяет сервер - это понятно. Вот если бы браузер отправлял - тогда были бы другие проблемы.
-
Nickolaz
RomikChef
для ругани есть приват!