- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вот уже сутки пытаюсь сделать из динамического сайта подобие статики чтобы Рамблер не давился, да и всем приятнее было :).
Пользуюсь модулем Mod_rewrite.
Привожу варианты оригинальных строк с сайта:
http://XXX.ru/A.php?cat=12345 и
http://XXX.ru/A.php?cat=12345&page=1
Хочу переделать соответственно в:
http://XXX.ru/baza/12345 и
http://XXX.ru/baza/12345/page1
Что я для этого делаю? :
RewriteEngine on
RewriteRule ^baza/(.*)/page(.*) /A.php?cat=$1&page=$2 [L]
В этом случае вариант второй строки проходит идеально, а вот первая дает ошибку. Подскажите пожалуйста как сделать правильно. Можно ли одной строкой RewriteRule покрыть оба варианта строки?
Заранее благодарен.
RewriteRule ^baza/([a-z]+)/(page)*([0-9]*) /A.php?cat=$1&page=$3 [L]
Вот только я бы УРЛы вызывал иначе, а именно:
/baza.12345.page1.html ;)
InSAn, ОГРОМНЕЙШЕЕ спасибо!
Думаю, что и совет про урлы тоже учту :)
RewriteRule ^baza/([a-z]+)/(page)*([0-9]*) /A.php?cat=$1&page=$3 [L]
Вот только я бы УРЛы вызывал иначе, а именно:
/baza.12345.page1.html ;)
Ну чтож я такой тупой... Или уже голова не варит...
InSAn, Ваше правило не заработало.
Решил сделать как Вы посоветовали (/baza.12345.1.html ), но хоть убей, не получается. Работает или первый вариант или второй.
Кстати, сразу вопрос. Причем здесь ([a-z]+), когда речь идет о числах?
Короче, решил делать по схеме /baza.12345.10.html (где 10 -номер стр)
Пишу: RewriteRule ^baza.([0-9]+).([0-9]*).html /A.php?cat=$1&page=$2 [L] -Работает только строка http://XXX.ru/A.php?cat=12345&page=10, строка http://XXX.ru/A.php?cat=12345 дает ошибку (не передается &page=10).
Пишу: RewriteRule ^baza.([0-9]+).*([0-9]*).html /A.php?cat=$1&page=$2 [L] -работает строка http://XXX.ru/A.php?cat=12345, а http://XXX.ru/A.php?cat=12345&page=10 не работает (выводится http://XXX.ru/A.php?cat=12345).
Помогите разобраться с синтаксисом.
Да, сорри, нужно [0-9]
Пишу: RewriteRule ^baza.([0-9]+).([0-9]*).html /A.php?cat=$1&page=$2 [L]
RewriteRule ^baza\.([0-9]+)\.p([0-9]+)\.html /A.php?cat=$1&page=$2 [L]
RewriteRule ^baza\.([0-9]+)\.html /A.php?cat=$1&page=1 [L]
Вызывать соответственно:
baza.12345.p10.html и baza.12345.html
Во втором случае по умолчанию page=1
Да, сорри, нужно [0-9]
RewriteRule ^baza\.([0-9]+)\.p([0-9]+)\.html /A.php?cat=$1&page=$2 [L]
RewriteRule ^baza\.([0-9]+)\.html /A.php?cat=$1&page=1 [L]
Вызывать соответственно:
baza.12345.p10.html и baza.12345.html
Во втором случае по умолчанию page=1
Спасибо, всё получилось. Только жаль, что нельзя оба варианта решить одной строкой.
Единственное понять не могу. Какую роль здесь играют обратные слеши перед точками?
Можно. Но быстрее работать не будет. Вернее, даже наоборот :)
Точка в левой части подразумевает любой символ.
Слеш перед ней - интерпретация именно "точки".
Примного благодарен, теперь все работает :D
помогите пожалуйста с:
http://url/index.php?action=view&view=category&catid=31&catflag=4&sublevel=2
в http://url/31/4/2
http://url/index.php?&action=view&view=category&catid=31&catflag=4&sublevel=2&start=10
в http://url/31/4/2/10.html
http://url/index.php?action=view&view=entry&entryid=478
в http://url/478.html
Спасибо!
помогите пожалуйста с:
http://url/index.php?action=view&view=category&catid=31&catflag=4&sublevel=2
в http://url/31/4/2
Кажется так:
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+) /index.php?action=view&view=category&catid=$1&catflag=$2&sublevel=$3 [L]
Я не знаю, является ли символ "/" - зарезервированным для регулярных выражений, поэтому если не получится, то везде перед ним ставить "\"
т.е.
RewriteRule ^([0-9]+)\/([0-9]+)\/([0-9]+) /index.php?action=view&view=category&catid=$1&catflag=$2&sublevel=$3 [L]
http://url/index.php?&action=view&view=category&catid=31&catflag=4&sublevel=2&start=10
в http://url/31/4/2/10.html
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)\.html /index.php?action=view&view=category&catid=$1&catflag=$2&sublevel=$3&start=$4 [L]
http://url/index.php?action=view&view=entry&entryid=478
в http://url/478.html
RewriteRule ^([0-9]+)\.html /index.php?action=view&view=entry&entryid=$1[L]
а как сделать так:
человек набирает в браузере index.php?a=1&b=2
сервер выдает эту страницу
но в браузере отображается адрес, например, вида page1.ask2.html и при этом чтобы работал так же и прямой набор адреса page1.ask2.html, отображающий туже самую страницу?
делаю так - но редиректа не происходит
RewriteRule ^page([0-9]+)\.ask([0-9]+)\.html /index.php?a=$1&b=$2 [R,L]