правило перезаписи двух папок htaccess - PullRequest
0 голосов
/ 20 января 2019

Я уже использую это правило htaccess, и оно работает

RewriteRule ^community/profile/([^/]+) community/profile/profile.php?id=$1

Так что, когда я нахожусь на странице профиля, например website.com/community/profile/example-user, я смогу извлечь пользователя из id =$ 1 part.

Мне нужно расширить это до двух папок, где example-user может иметь 2 подпапки, например website.com/community/profile/example-user/folder1/ и website.com/community/profile/example-user/folder 2/

Я попробовал следующее правило:

RewriteRule ^community/profile/([^/]+)/([^/]+) community/profile/profile.php?id=$1&car=$2

К сожалению, это нарушает все правило и не работает.Я получил идею из этого поста https://webmasters.stackexchange.com/questions/65785/rewrite-up-to-three-folders-into-three-query-string-parameters-to-a-php-script

Кроме того, я пытался

RewriteRule ^community/profile/../([^/]+) community/profile/profile?id=$1&car=$2

Также не работал.

Чтобы прояснить ситуацию, если перейти только к «первой» папке, в данном примере это /example-user/, переменная car должна быть просто пустой.Как я могу написать это правило так, чтобы оно помещало эту вторую «папку» во вторую переменную, чтобы я мог извлечь ее позже в моем php-файле?

1 Ответ

0 голосов
/ 20 января 2019
  • Обязательно используйте якорь $ для точного соответствия в регулярном выражении
  • Включите точку в свой класс персонажей, чтобы избежать ее повторения

Правила:

RewriteRule ^community/profile/([^/.]+)/?$ community/profile/profile.php?id=$1 [L,QSA,NC]

RewriteRule ^community/profile/([^/.]+)/([^/.]+)/?$ community/profile/profile.php?id=$1&car=$2 [L,QSA,NC]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...