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

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Изменяю я динамические УРЛ в статические. Первую задачу я решил, а была она такая: переделать адрес вида http://site/index.php/?ID=23 в вид http://site/23
Но теперь идет как бы второй уровень, т.е. надо уже такой вид http://site/index.php?ID=23&Name=2 переделать в http://site/23/2
Я нигде не видел примеры подобного разбора, везде приводится самый простой пример. Помогите пожалуйста, только на форум надежды остались.
Кстати, чтобы легче было отвечать, приведу код к первому варианту, который работает:
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)$ /index.php?ID=$1
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)$ /index.php?ID=$1
RewriteRule ^([0-9]+)/([0-9]+)$ /index.php?ID=$1&Name=$2
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)$ /index.php?ID=$1
RewriteRule ^([0-9]+)/([0-9]+)$ /index.php?ID=$1&Name=$2
Я конечно ничего не хочу сказать, но, по-моему, если уже так и писать, то правила в обратном порядке и в конце [L] :).
Cherny, точно, спасибо огромное, заработало.
Только вот вопрос еще один: можно сделать чтоб и со слэшем и без слэшей загружалось? А то сейчас если ставить в конце УРЛ слэш то ошибка вылазит, если в коде подправить и дописать слэш (после круглых скобок), то наоборот со слэшем работает а без него нет.
Saney, про L в конце я знаю, потом допишу, а что вы имели ввиду под "правила в обратном порядке", местами что ли строки поменять?
Cherny, точно, спасибо огромное, заработало.
Только вот вопрос еще один: можно сделать чтоб и со слэшем и без слэшей загружалось? А то сейчас если ставить в конце УРЛ слэш то ошибка вылазит, если в коде подправить и дописать слэш (после круглых скобок), то наоборот со слэшем работает а без него нет.
Saney, про L в конце я знаю, потом допишу, а что вы имели ввиду под "правила в обратном порядке", местами что ли строки поменять?
Оригинал:
Вариант с необязательным слэшем:
Приблизительно так.. Универсально - /? перед $. Надеюсь поможет :-)
Saney, про L в конце я знаю, потом допишу, а что вы имели ввиду под "правила в обратном порядке", местами что ли строки поменять?
Та нет не надо, то я не о том подумал. Все нормально :).
SiGiN, ага, работает, спасибо.
Чтобы ветку не открывать новую, здесь хочу еще раз спросить кое что, столкнулся с новой проблемой. Если кто может, помогите.
Есть вот такая строка:
RewriteRule ^([a-z]+)[/]?$ /input.php?Action=Close [L]
Она работает, но после Action встречаются и другие слова, поэтом у я заменил на вот такую строчку:
RewriteRule ^([a-z]+)[/]?$ /input.php?Action=$1 [L]
И она уже не работает. Сделал все точно так же как и предыдущие строчки, которые работают, разница лишь в том что там цифры а здесь буквы. Как правильно написать?
Подозреваю, что проблема может быть в самом конце строчки, этот $1 я все время пишу во всех строчках, может быть правильно в каждой строчки писать разные цифры или нет разницы? Впрочем ставил в конец и другие цифры, все равно не работает.
Хм.
RewriteRule ^([a-z]+)[/]?$ /input.php?Action=Close [L]
Обозначает, что любое обращение к site.com/[любое кол во маленьких латинских букв][возможная косая черта] будет перенаправлено на ссылку site.com/input.php?action=close
Этот вариант:
RewriteRule ^([a-z]+)[/]?$ /input.php?Action=$1
Почти такой же, как предыдущий, но перебросит на site.com/input.php?action=[любое кол во маленьких латинских букв].. To есть, чтобы вариант сработал - нужно ..
Хм.. Я кажись понял что вы имеете ввиду :-)
Попробуйте так:
RewriteRule ^([A-Za-z]+)[/]?$ /input.php?Action=$1 [L]
Это включит и маленькие и большие латинские буквы :-) И как вариант
RewriteRule ^([A-Za-z0-9]+)[/]?$ /input.php?Action=$1 [L]
Все буквы и цифры.
SiGiN, к сожалению и так не работает. Главное, как только в самом конце $1 заменяю на нужное слово (Close), то сразу работает, ничего понять не могу...
Неужели для каждого слова отдельную строчку писать надо.
Эмс.. А можно конкретный пример?
Можно в личку, если не охота светиться. Я с удовольствием помогу, только я не очень понимаю - какие именно цели преследуются :-)
А если в общем, то
RewriteRule ^([A-Za-z0-9]+)/?$ input.php?Action=$1 [L]
Будет передавать в input.php get запрос с Action равным [чему-то] при урл.ком/[что-то]/
То есть при вышеуказанном RewriteRule, www.site.org/Close/ - то же самое, что www.site.org/input.php?Action=Close.
Лично я для себя делал универсальный mod_rewrite, а потом уже фильтровал запросы на php. То есть .htaccess получается не шибко велик.
PS: Я в своём RewriteRule убрал квадратные скобки вокруг слэша, но не думаю что это будет панацеей.