Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2012, 12:24   #1
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию знак ? в .htaccess

стоит задача, срамницы типа
page.htm?a=123 преобразовать -> index.php?module=pages&a=123
...всю голову сломал, не могу побороть знак ? в исходном урл.... и вообще все выражения с ним - ведут себя как то неадекватно
... вроде бы должно срабатывать это:
Код:
RewriteEngine On
RewriteBase /
RewriteRule ^.htaccess$ - [F]

RewriteRule ^page.htm?a=(.*)$ index.php?module=pages&a=$1 [L]
а не срабатывает
ADSoft вне форума Ответить с цитированием
Старый 23.05.2012, 12:36   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Знак вопроса в Регулярных Выражениях относится к спецсимволам, а потому должен экранироваться \? - если используется как обычный символ:
Цитата:
Символ ? ставится после символа (или группы символов), который может как присутствовать, так и отсутствовать. Например, выражению "jpe?g" подойдет и строка "jpg", и строка "jpeg". Пример выражения с группой символов: "super-(puper-)?site".
...
Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде. Например, выражению "jpe\+g" соответствует только одна строка "jpe+g".
Link
Andkorol вне форума Ответить с цитированием
Старый 23.05.2012, 13:10   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

пробовал
Код:
RewriteRule ^page.htm\?a=(.*)$ index.php?module=pages&a=$1 [L]
в результате переадресовывает на page.htm которого у меня нет .. не отрабатывая на нужный путь
ADSoft вне форума Ответить с цитированием
Старый 23.05.2012, 14:10   #4
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Код:
RewriteRule ^page.htm$ index.php?module=pages [QSA]
А так? Попробуй передай параметр "а", как ты это делал.
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 23.05.2012, 16:28   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

пробовал.. не катит ... кроме
Код:
index.php?module=pages
ничего (
ADSoft вне форума Ответить с цитированием
Старый 23.05.2012, 16:46   #6
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Еще и точки экранировать надо
Код:
RewriteRule ^page\.htm\?a=(.*)$ index.php?module=pages&a=$1 [L]
Cronos20 вне форума Ответить с цитированием
Старый 23.05.2012, 16:49   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
пробовал.. не катит ... кроме
Код:
index.php?module=pages
ничего (
Всмысле - ничего...?
Не редиректит?
Попробовал вариант от spein - вроде работает, данные в скрипт index.php передаются.

PS: флаг QSA поставил?
Цитата:
'qsappend|QSA' (добавлять строку запроса)
Этот флаг указывает механизму преобразований на добавление а не замену, строки запроса из URL к существующей, в строке подстановки. Используйте это когда вы хотите добавлять дополнительные данные в строку запроса с помощью директив преобразований.

Последний раз редактировалось Andkorol; 23.05.2012 в 16:56. Причина: PS
Andkorol вне форума Ответить с цитированием
Старый 23.05.2012, 16:57   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

всем спасибо... все равно сделал не через httacces... и это хорошо! ))
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
.htaccess kpachbiu PHP 2 26.04.2011 15:52
.htaccess soonner PHP 4 16.12.2010 23:51
.htaccess limon PHP 5 08.03.2009 01:28
htaccess wall66 PHP 1 25.02.2009 17:52
Есть чат на яваскрипте.не могу поставит знак +;Хотя люди его как то ставят, просто мой знак + заменяется maksim1983 JavaScript, Ajax 4 23.02.2009 07:55