- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть не совсем типичная ситуация.
Нужно - при обращении к сайту по УРЛ со знаком вопроса (site.com?ddddd) - чтобы давало или 404, или УРЛ - до знака вопроса 301 редиректом.
НО сама страница имеет инклуды, где вызывается пара страниц с параметром page.php?pas=44
Нужно, чтобы инклуды работали, но в УРЛ знак вопроса с переменными не работал.
Как это можно сделать?
Нашел:
RewriteBase /
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule (.*) ----.html [L]
но при этом не работают инклуды, а надо бы...
Нужно проверять get параметры на валидность
Это хорошо что вы знаете какие у вас есть get праметры
А теперь представьте что не знаете?
А ведь запрос (site.com?ddddd) вполне валидный
Нужно - при обращении к сайту по УРЛ со знаком вопроса (site.com?ddddd) - чтобы давало или 404, или УРЛ - до знака вопроса 301 редиректом.
возможно вам нужно банально убрать сессии - что-то типа
В принципе никак. Либо сделать исключение для этих пару страниц, либо в инклудах добавить дополнительный параметр &include, и проверять его наличие перед редиректом.
---------- Добавлено 08.10.2012 в 15:51 ----------
Хотя.. ип адрес же при инклуде должен быть локальным, его и проверяйте.
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{REMOTE_ADDR} !^server_ip_adress$
RewriteRule (.*) /$1? [R=301,L]
Так попробуйте:
RewriteCond %{QUERY_STRING} ^pas=*$ [NC]
RewriteRule ^page\.php$ http://www.site.com/page.php? [R=301,L]
НО сама страница имеет инклуды, где вызывается пара страниц с параметром page.php?pas=44
Я правильно понимаю?
Да, в шаблонах страниц есть вызовы типа
и они должны работать.А вот вариант. Как сделать такое исключение? В .htaccess? Т.е. какими командами?
RewriteRule ^page.html$ page.php?pas=$1 [L]
будет редирект на страницу page.html но с переданным параметром pas
в page.php делаете проверку
if(isset $_POST['pas']){
...
}else{
...
}
RewriteRule ^page.html$ page.php?pas=$1 [L]
будет редирект на страницу page.html но с переданным параметром pas
в page.php делаете проверку
if(isset $_POST['pas']){
...
}else{
...
}
Так работать не будет, так как не определен pas=$1
Правильно будет так:
RewriteRule ^page_([^(.*)]*)\.html$ page.php?pas=$1
if(isset $_POST['pas']){
вместо $_POST я бы проверял $_GET или $_REQUEST.
по-моему, параметры из query string не должны попадать в $_POST.
вместо $_POST я бы проверял $_GET или $_REQUEST.
по-моему, параметры из query string не должны попадать в $_POST.
В указанном выше случае POST работать не будет, так как параметры передаются через GET.