Форум об интернет-маркетинге
Вернуться   Форум об интернет-маркетинге > Технические вопросы > Веб-строительство

Ответ
 
Опции темы
Старый 17.11.2021, 05:39   #1
medexpert
Member
Аспирант
 
Аватар для medexpert
 
Регистрация: 21.06.2020
Сообщений: 87
Сказал(а) спасибо: 44
Получил(а) "Спасибо": 30
Нарушения: 0/0 (0)
Репутация: 111937

Thread Starter Передать переменную из .htaccess в perl скрипт

Здоровья Всем!
.htaccess # проверяем прямые заходы
Код:
RewriteCond %{HTTP_REFERER} ^$
...
RewriteRule ^(.*)$ /welcome.pl?%{REQUEST_URI}/%{QUERY_STRING} [R,L]
Так нормально работает, но хотел сделать
Код:
RewriteRule ^(.*)$  /welcome.pl? [R,L]
не могу передать переменные
Код:
RewriteRule .* - [E=welcome_string:%{QUERY_STRING}]
- меняет на значение страницы welcome.pl

Подскажите, как решить?
"... Нет того веселья:
Или куришь натощак,
Или пьёшь с похмелья."
medexpert вне форума   Ответить с цитированием
Старый 17.11.2021, 10:23   #2
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Передать переменную из .htaccess в perl скрипт

medexpert, Вообще не понятно, что именно ты хотел переделать.
Сейчас у тебя всё ок - ты передаешь урл запрашиваемой страницы (%{REQUEST_URI}) и всю строку GET параметров (%{QUERY_STRING}).

Ты зачем то пытаешься параметры присвоить переменной (гарантированно переменную можно назначить только хосту и протоколу, остальные зависят от ОС и настроек панелей и софта и могут не реагировать на твои хотелки в .htaccess).

Для чего ты пытаешься переменной строку параметров присвоить?
Хочешь обработать простым парсингом?
Тогда так и передавай как сейчас , только урл в параметр вгони:

Код:
RewriteRule ^(.*)$ /welcome.pl?%{QUERY_STRING}&sendurl=%{REQUEST_URI}% [R,L]
Состояние бота google и полезные ресурсы: всё про гугл
XPraptor вне форума   Ответить с цитированием
Старый 17.11.2021, 12:32   #3
medexpert
Member
Аспирант
 
Аватар для medexpert
 
Регистрация: 21.06.2020
Сообщений: 87
Сказал(а) спасибо: 44
Получил(а) "Спасибо": 30
Нарушения: 0/0 (0)
Репутация: 111937

Thread Starter Re: Передать переменную из .htaccess в perl скрипт

Я хочу получить в .htaccess значение переменной %{REQUEST_URI} в виде СТРОКИ. Сделать
SetEnv welcome СТРОКА
и обработать в скрипте.

Если
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule .* - [E=welcome_string:%1]
показывает результат для welcome.pl

Последний раз редактировалось medexpert; 17.11.2021 в 12:45.
medexpert вне форума   Ответить с цитированием
Старый 17.11.2021, 20:47   #4
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Передать переменную из .htaccess в perl скрипт

Так я тебе указал как отправить URI в твой скрипт (знак процента лишний в конце затесался)
Код:
RewriteCond %{HTTP_REFERER} ^$
RewriteRule ^(.*)$ /welcome.pl?%{QUERY_STRING}&welcome_string=%{REQUEST_URI} [L]
Переменную E= ты не можешь назначить для QUERY_STRING, если она не назначается (не позволяет ОС, или софт: панель, апач, нгинкс и прочие).

Но зачем тебе переменная E= - это именно переменная окружения, её видимость будет нулевой, как только .htaccess будет выгружен она исчезнет, перехватить её почти нигде нельзя.
XPraptor вне форума   Ответить с цитированием
Старый 18.11.2021, 12:21   #5
medexpert
Member
Аспирант
 
Аватар для medexpert
 
Регистрация: 21.06.2020
Сообщений: 87
Сказал(а) спасибо: 44
Получил(а) "Спасибо": 30
Нарушения: 0/0 (0)
Репутация: 111937

Thread Starter Re: Передать переменную из .htaccess в perl скрипт

Удивительное дело. Две области видимости переменных с одинаковыми переменными, которые вызываются в зависимости от контекста.
Ребята "глубоко копнули".
medexpert вне форума   Ответить с цитированием
Старый 18.11.2021, 13:16   #6
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 541251

По умолчанию Re: Передать переменную из .htaccess в perl скрипт

Да эти переменные нужны только в основном для такого кода:
Код:
RewriteRule ^ - [E=proto:https]
Rewritecond %{HTTP_HOST} ^www\.site\.ru$
RewriteRule ^(.*)$ %{ENV:proto}://site.ru/$1 [R=301,L]
Когда ты протокол указываешь, чтобы сделать в .htaccess полный редирект с хостом и протоколом.
Либо когда ты не знаешь протокол - ты тут же можешь назначить текущий протокол такой переменной и сделать редирект по текущему протоколу.

А в остальном они не срабатывают, или не нужны (вместо них работают штатные глобальные переменные %{} ).
XPraptor вне форума   Ответить с цитированием
Старый 18.11.2021, 14:20   #7
medexpert
Member
Аспирант
 
Аватар для medexpert
 
Регистрация: 21.06.2020
Сообщений: 87
Сказал(а) спасибо: 44
Получил(а) "Спасибо": 30
Нарушения: 0/0 (0)
Репутация: 111937

Thread Starter Re: Передать переменную из .htaccess в perl скрипт

Я говорю о %{REQUEST_URI} и %{QUERY_STRING}
medexpert вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт комментариев CommentIt 5 Ajax на любой сайт одной строкой! leonidukg Продажа товаров 20 01.10.2021 21:08
Нужен скрипт подтверждения номера мобильного телефона по SMS. vastmanager Биржа услуг 2 15.02.2021 15:16
Парсинг сайта из Linux на perl vga1 Веб-строительство 4 06.10.2020 21:38
Нужен скрипт сбора информации юни Биржа услуг 22 23.09.2020 03:51
Конвертация htaccess nginx Ankr Веб-строительство 15 12.08.2020 20:32


Текущее время: 13:54. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc. Перевод: zCarot