RewriteRule ^([A-Za-z0-9_\-]+)$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+)/$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)$ /viewbuyproduct.php?1=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/$ /viewbuyproduct.php?1=$1 [L] 

У меня следующие правила. Они работают так:

if url = /a or /a/ or /a/a or /a/a/ go to file userviewproducts.php and if url = /a/a/a or /a/a/a/ go to file viewbuyproduct.php 

Он работает так, как мне нужно, но я вижу здесь термин «КОД-ЗАПАХ» и хочу написать его короче. Будет плюс каждый ответ =)

  • В любом случае, я считаю, что такие вопросы следует размещать в Stackoverflow. Там вы получите больше ценных ответов.

Попробуй это:

RewriteRule ^([A-Za-z0-9_\-]+)/?$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/?$ /userviewproducts.php?category=$1 [L] RewriteRule ^([A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+/[A-Za-z0-9_\-]+)/?$ /viewbuyproduct.php?1=$1 [L] 

Это короче.

  • 1 Ой, я оставил страницу открытой на 20 минут и в итоге отправил тот же ответ, что и вы;)

Читайте о регулярных выражениях. Лучшее их понимание поможет вам писать более короткие правила здесь и в будущем.

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

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

Это можно упростить до следующего:

RewriteRule ^([\w-]+(/[\w-]+)?)/?$ /userviewproducts.php?category=$1 [L] RewriteRule ^([\w-]+/[\w-]+/[\w-]+)/?$ /viewbuyproduct.php?1=$1 [L] 

\w сокращение для [A-Za-z0-9_].

В - (дефис) не нужно экранировать при использовании в начале или в конце класса символов.

В ? в конце делает предыдущий слеш необязательным.

Наконец, первые два правила (замены) объединяются, делая вторую часть шаблона необязательной. т.е. (/[\w-]+)?. $1 по-прежнему соответствует всему URL-пути, за исключением конечной косой черты (если есть).

Для вас трудились: Charles Robertson | Хотите связаться с нами?

Полезная информация