构建一个包含每个部分内容的网站。
网址范围从;
/工作/
/工作/打印/
/ work / print / folders等。
但是,用户可以随时点击文章;
/工作/条/ 1066
/工作/打印/条/ 1066
/ work / print / folders / article / 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返回 的index.php 1级= $ 1和;级别2 = $ 2及条款ArticleID = 1066
基本上水平的数量总是不同但我想根据需要返回。 另一个例子是/ work / print / folder / archive / article / 1066 return
index.php?level1=$1&level2=$2&level3=$3&level4=$4&articleID=1066
任何帮助表示赞赏!丹
答案 0 :(得分:0)
一个简单的解决方案是在php脚本中进行电平检测。
RewriteRule ^(.+)/article/(\d+)$ index.php?levelsUri=$1&articleID=$2
然后,您可以解析“levelsUri”请求值并检测php脚本中的级别。
答案 1 :(得分:0)
最后我只是手动完成! (虽然更喜欢更广泛的解决方案)
# 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]