Рейтинг:1

Два разных условия перезаписи в одном и том же .htaccess?

флаг es

Мне нужно создать условие перезаписи для двух конкретных файлов в соответствии с запрошенным путем в URL-адресе. Это возможно?

Условие 1: Если URL-адрес пример.com/admin перейти к admin.php?uri=параметры. Это:

  • пример.com/admin/форма => admin.php?uri=форма

  • example.com/admin/form/edit => admin.php?uri=форма/редактировать

и т.д...

Условие 2: Если URL занимает ЛЮБОЙ ДРУГОЙ параметр (кроме /админ), перейти к index.php?uri=параметры. Таким образом:

  • пример.com/о => index.php?uri=о

  • пример.com/тест => index.php?uri=тест

  • example.com/blau/bleu => index.php?uri=синий/синий

и т.д...

Рейтинг:0
флаг kz

Попробуйте что-то вроде этого:

DirectoryIndex index.php

Параметры - Мультивиды

RewriteEngine включен

RewriteRule ^admin(?:$|/([^.]*))$ admin.php?uri=$1 [QSA,L]

RewriteRule ^([^.]+)$ index.php?uri=$1 [QSA,L]

Это предполагает, что ни один из ваших URL-адресов (которые необходимо переписать) не содержит точек (.). Это позволяет избежать проверки файловой системы, чтобы убедиться, что запрос не сопоставляется со статическим ресурсом, который обычно включает расширение файла (разделенное точкой).

Мультивиды необходимо отключить (если это еще не сделано), так как вы запрашиваете URL-адрес /админ это базовое имя файла, в который вы перезаписываете. Если MultiViews был включен, то /admin.php будет вызываться без параметра URL.

КСА (Добавление строки запроса) требуется только в том случае, если вы ожидаете строку запроса в исходном запросе, которую необходимо будет добавить к переписанному URL-адресу.

Запрос корня документа (домашняя страница) вызовет index.php без в ури параметр.


В стороне: Просто замечание по терминологии...

Если URL принимает ЛЮБОЙ ДРУГОЙ параметр (кроме /админ)

То, что вы здесь называете «параметром», на самом деле является URL-путем (или сегментами пути). URL-адрес Параметры являются парами имя=значение в строке запроса (то, на что вы хотите переписать запрос).

В вашем примере вы переписываете URL-путь в значение параметра URL.

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

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