Рейтинг:0

htaccess сопоставляет все слова до последней косой черты и перенаправляет 301

флаг cn

Я пытаюсь избежать всего до последней косой черты, даже если между ними есть косая черта. Пример:

/site_url/курсы/категория 1/категория 2/подкатегория/название курса

к

/site_url/курс/имя курса 

или же

/site_url/курс/имя курса 

Как я могу добиться этого с помощью Nginx или Apache?

флаг kz
«сбежать от всего» — похоже, вы хотите _удалить_ все? Является ли `site_url` не обязательно одинаковым в источнике/цели? Хотя в вашем примере также используется заглавная буква «n» в «название курса»?! "на `/site_url/course/courseName` или ..." - ваши 2 _альтернативы_ кажутся одинаковыми? Есть ли у вас какие-либо другие директивы в вашем файле Apache `.htaccess`?
Рейтинг:0
флаг kz

Если под «экранированием» вы подразумеваете «удалить» (как в вашем примере), вы можете сделать что-то вроде следующего в своей конфигурации Apache (или .htaccess) файл:

RedirectMatch 301 ^(?!/site_url/course/).+/([^/.]+)$ /site_url/course/$1

негативный взгляд вперед (т.е. (?!/site_url/курс/)) гарантирует, что перенаправленный запрос также не будет перенаправлен (что может вызвать цикл перенаправления).

Предполагается, что вы еще не используете mod_rewrite.

И это, очевидно, ничего не делает для заглавных букв, поскольку ваш пример, похоже, идет от /название курса к /название курса, что не заметно шаблон (если это не буквальный текст?!).

Протестируйте с 302 (временной) переадресацией, чтобы избежать потенциальных проблем с кэшированием.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.