|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.11.2009, 13:14 | #1 |
Пользователь
Регистрация: 22.06.2009
Сообщений: 17
|
Apache mod_rewrite и GET переменные php
Всем привет)
Нужно скрытно добавлять ко всем php скриптам дополнительную GET переменную. Например пользователь запрашивает скрипт index.php, а реально должен выполниться index.php?var=1. Скрипт может хоть как называться, не обязательно index.php. Впринципе это делается довольно легко, достаточно прописать в .htaccess: Код:
Например, если пользователь запросит index.php?catalog=11&dir=22, то реально выполняется опять таки index.php?var=1. Все остальные переменные просто исправляются mod_rewrite'ом. Я пытался сделать так: RewriteRule ^(.+)\.php?(.*)$ $1.php?var=1&$2 Но ничего не изменилось... Кто нибудь знает как сделать так чтобы просто к стандартным GET переменным добавилась еще одна переменная без затирания предыдущих? Ткните носом в ошибку, второй день с этой фигней сижу) Спасибо) update: Сохранять переменную еще где то(в куках, запрашивать при старте из мускула, любой другой вариант), не предлагайте пожалуйста) Во первых, это скрытная переменная нужна только в одном каталоге сайта. Во вторых, чтобы сохранять переменную в другом месте надо сделать очень много изменений в коде. В третьих, велика вероятность что при редактировании страниц это переменная благополучно затрется. Последний раз редактировалось Алориан; 12.11.2009 в 13:27. Причина: update |
13.11.2009, 03:03 | #2 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
Прописать общее правило для всех. Если такого нельзя создать - создавать для отдельно каждого случая. Например:
RewriteRule (.+) $1&var=1 |
13.11.2009, 03:03 | #3 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
Прописать общее правило для всех. Если такого нельзя создать - создавать для отдельно каждого случая. Например:
RewriteRule (.+) $1&var=1 |
13.11.2009, 09:24 | #4 | |
Пользователь
Регистрация: 22.06.2009
Сообщений: 17
|
Цитата:
Само правило вроде бы правильно написано. Попробовал еще так: RewriteRule ^(.+) $1&var=1 RewriteRule ^(.+)$ $1&var=1 Та же самая ошибка. А делать для каждого конкертного случая это как? Если вот так: RewriteRule ^index.php?(.+) index.php?$1&var=1 То дополнитльная переменная var=1 добавляется, но все остальные обрезаются. Или как то по другому надо? Почему они обрезаются я собственно и не могу понять) Может быть я проверяю не правильно? PHP код:
Код:
Получаю страницу с циферкой 1, то есть значение переменной var. То что в RewriteRule для var прописно, то и получаю. Больше на странице ничего нет, хотя должно быть помимо циферки 1 еще и "ergsdrgdgrsdrg". Проверяю вроде бы правильно, тут ошибиться то негде. |
|
13.11.2009, 11:38 | #5 |
Клонирую людей
Пользователь
Регистрация: 22.02.2008
Сообщений: 22
|
я не очень силен в этом но может так:
Код:
В мире нет Вечных Двигателей, зато полно Вечных Тормозов.
Последний раз редактировалось krok; 13.11.2009 в 11:41. |
13.11.2009, 12:03 | #6 |
Пользователь
Регистрация: 22.06.2009
Сообщений: 17
|
krok, эм... Нет.
Спасибо за попытку конечно, но совсем мимо) В mod_rewrite используются регулярные выражания, а у вас я не знаю из какой области пример. |
13.11.2009, 13:09 | #7 |
Пользователь
Регистрация: 13.11.2009
Сообщений: 14
|
А у меня ваш пример работает. Я правда не понимаю зачем так делать.... если будет передаваться заведомо известная переменная, не легче ли ее объявлять в скрипте, чем получать ГЕТ методом....
|
13.11.2009, 13:11 | #8 |
Пользователь
Регистрация: 13.11.2009
Сообщений: 14
|
http://www.yourtwins.ru/index.php
в .htaccess Код:
Код:
|
13.11.2009, 13:28 | #9 |
Пользователь
Регистрация: 22.06.2009
Сообщений: 17
|
Нет, сама переменная var у меня тоже нормально выводится проверкой через echo.
Но вот переменная bugoga уже через echo не выводится. Попробуйте, если она у вас тоже появится на странице, то будем пинать хостинг скорее всего. |
13.11.2009, 13:57 | #10 |
Пользователь
Регистрация: 13.11.2009
Сообщений: 14
|
не, не выводится...
но кодом, который Вы написали в начале, по идее она и не должна выводиться Нужно изменить на что-то типа этого: Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавить запись в MySQL. Apache. PHP. | ViNcHeStEr | PHP | 3 | 11.08.2012 11:29 |
Нужна помошь в настройке PHP и Apache | DrHouse | Помощь студентам | 10 | 13.07.2009 22:04 |
Реально ли написать на Delphi 7 свою библиотеку для Apache (PHP интерпр.) ? | FLEX_NST | PHP | 1 | 05.07.2009 18:13 |
Apache + php | Ururu | PHP | 3 | 25.04.2009 15:39 |