совпадать со статьей в URL RewriteRule - PullRequest
1 голос
/ 28 мая 2010

создание сайта, на котором есть содержание для каждого раздела.

URL-адреса в диапазоне от;
/ Работа /
/ Работа / печать /
/ работа / печать / папки и т. д.

однако, в любой момент пользователь может щелкнуть статью так;
/ Работа / статьи / 1066
/ Работа / печать / статьи / 1066
/ работа / печать / папки / статьи / 1066

используя .htaccess, мне нужно определить, когда в URL есть «article», и установить несколько разных переменных.

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$ 
sets  index.php?level1=$1&level2=$2&level3=$3&level4=$4

но если в статье указывается «article / ([0-9 -] +)», скажем / work / print / article / 1066 return index.php? level1 = $ 1 & level2 = $ 2 & ArticleID = 1066

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

index.php?level1=$1&level2=$2&level3=$3&level4=$4&articleID=1066

любая помощь приветствуется! Dan

Ответы [ 2 ]

0 голосов
/ 01 июня 2010

в итоге я просто сделал это вручную! (хотя предпочел бы более масштабные решения)

# MENU ###

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$  index.php?level1=$1&level2=$2&level3=$3 [L]

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$  index.php?level1=$1&level2=$2 [L]

RewriteRule ^([a-zA-Z0-9\-]+)/$  index.php?level1=$1 [L]


###  WITH ARTICLE  ###


RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/article/([0-9\-]+)/([a-zA-Z0-9\-]+)$$  index.php?level1=$1&level2=$2&level3=$3&articleID=$4 [L]

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/article/([0-9\-]+)/([a-zA-Z0-9\-]+)$$  index.php?level1=$1&level2=$2&articleID=$3 [L]

RewriteRule ^([a-zA-Z0-9\-]+)/article/([0-9\-]+)/([a-zA-Z0-9\-]+)$  index.php?level1=$1&articleID=$2 [L]


RewriteRule ^$  index.php?level1=home [L]
0 голосов
/ 28 мая 2010

Простым решением будет определение уровня в вашем php-скрипте.

RewriteRule ^(.+)/article/(\d+)$ index.php?levelsUri=$1&articleID=$2

Затем вы можете проанализировать значение запроса "levelsUri" и определить уровни в вашем php-скрипте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...