- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужно сделать 301 редиректы со страниц:
index.php?c_page=набор_цифрX (последняя цифра X, она м. б. = 1, 2, 3 или 4)
на страницы
index.php?c_page=набор_цифр0 (последняя цифра = 0)
Вариант:
не проходит.Где я облажался?
Спасибо.
попробуйте \? вместо ?
/?index\.php
знак ? тоже вызывает вопросы.
RewriteCond %{QUERY_STRING} c_page\=([0-9]*)[1-4]+$
RewriteRule ^index.php(.*)$ /index.php?c_page=%1\0 [R=301,L]
попробуйте \? вместо ?
Не помогло.
знак ? тоже вызывает вопросы.
Без него тоже не работает. /? у меня служит для исключения возможности появления двойного слеша в конечном URL, например, site.ru//index.php
RewriteCond %{QUERY_STRING} c_page\=([0-9]*)[1-4]+$
RewriteRule ^index.php(.*)$ /index.php?c_page=%1\0 [R=301,L]
Работает! Спасибо большое.
В приведённом коде нужно заменить [1-4]+ на [1-4], т к. + здесь просто лишний, хотя и не влияет на поставленную задачу. Если будете решать по аналогии другую подобную задачу, то можете так и не догадаться, откуда у Вас вылезает ошибка, если не удалите +:
[1-4]+ — встречается любая из цифр 1,2,3,4 от 1 до N раз подряд, где N>1
[1-4] — встречается любая из цифр 1,2,3,4 только 1 раз
Нужно:
RewriteCond %{QUERY_STRING} c_page\=([0-9]*)[1-4]$RewriteRule ^index.php(.*)$ /index.php?c_page=%1\0 [R=301,L]
nejronODP, Да действительно "+" там лишний и "(.*)" во второй строке тоже лишнее.
nejronODP, Да действительно "+" там лишний и "(.*)" во второй строке тоже лишнее.
Да, Вы правы, в идеале нужно:
RewriteCond %{QUERY_STRING} c_page\=([0-9]*)[1-4]$RewriteRule ^index.php$ /index.php?c_page=%1\0 [R=301,L]
Кстати, вот 2 перевода статей с английского — http://www.egoroff.spb.ru/portfolio/apache/. Это лучшие материалы в Рунете по модулю Apache mod_rewrite и URL преобразованиям, что я видел за последние 3 дня.
Вообще-то, мне не очень нравится, когда приходится разбираться в целом пласте материала с нуля из-за разовой задачи, которую, скорее всего, в будущем больше и не встретишь.