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

У меня есть два правила переписывания:

RewriteRule ^([^/]+)/([^/]+)/?$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L,QSA,B]

а также

RewriteRule ^([^/]+)/?$ /?action=viewHomepageName&page_identifier=$1 [L,QSA,B]

Я хотел бы создать новое правило для переписывания:

/?action=archive&categoryId=$1 

в

/archive/news

Где "новости" - это идентификатор категории или $1.

С двумя правилами, упомянутыми выше, возможно ли это? Я хотел бы представить, что мне нужно поместить его выше других правил и указать, если example.com/archive/ переписать, а затем остановить перезапись.

1 ответ

Решение

Вы можете иметь свои правила, как это в корне.htaccess

RewriteEngine On

# don't process further rules for real files and directories
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^(archive)/([^/]+)/?$ /?action=$1&categoryId=$2 [L,QSA,NC]

RewriteRule ^([^/]+)/([^/]+)/?$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L,QSA,B]
RewriteRule ^([^/]+)/?$ /?action=viewHomepageName&page_identifier=$1 [L,QSA,B]
Другие вопросы по тегам