2016-11-29 5 views
0

Я обработки некоторых URLs с HTAccess как нижеHtaccess перенаправление без имени базы

B)https://www.example.com/online/development/id 

правил:

RewriteRule ^online/(.*)/(.*)$ filename.php?key=$2 [L] 

Но сейчас я хочу использовать некоторые URLs, как показано ниже: -

https://www.example.com/development/id 

Как это сделать?

+1

Попробуйте '^ ([^ /] *)/([^ /] *) $' –

+0

помните, что разработка - это динамическое слово –

+0

В вашем решении, каким будет базовый файл (file.php), где мне нужно разместить код? –

ответ

2

Вы можете использовать этот rule-

RewriteRule ^([\w-]+)/([\w-]+)$ filename.php?key=$2 [QSA,L] 
+0

Что можно использовать [\ w -] + здесь, пожалуйста, объясните –

+0

Извините, я не могу вас получить, если для объяснения мы сопоставляем только две подходящие группы без онлайн-адреса в url, а затем добавим результат 2-го совпадающего списка в ваш файл , –

+0

Я просто прошу использовать \ w- в regex –

1

Ваши регулярные выражения матчи:

  • ^ - начало ввода (часть после HOST)
  • online/ - буквальное последовательность обугленного online/
  • (.*) - любые символы 0+, как можно больше, до l аст ...
  • / - слэш
  • (.*) - Группа 2: любые ноль или более символов вплоть до ...
  • $ - конец ввода.

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

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

RewriteRule ^[^/]*/([^/]*)$ filename.php?key=$1 [L] 

В [^/]+ Удачные 1+ символы, кроме /. Так как вы не используете группу 1, я рекомендую удалить первый комплект из ( и ) и использовать $1 на замену.

Теперь регулярное выражение соответствует:

  • ^ - начало ввода
  • [^/]* - ноль или больше символов, кроме / ([^...] называется класс инвертированный характер)
  • / - косая черта
  • ([^/]*) - Группа 1: см. выше
  • $ - конец ввода.

И это означает, что на пути может быть только 1 косая черта.

Смежные вопросы