建立一个网站,其中有每个部分的内容。
urls的范围从;
/工作/
/工作/打印/
/work/print/folders等
然而,用户可以在任何时候点击一篇文章,所以;
/work/article/1066
/work/print/article/1066
/work/print/folders/文章/1066
使用.htaccess时,我需要检测url中是否有“文章”,并设置一些不同的变量。
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但是如果‘文章/(0-9-+)’在url中,就说/work/print/文章/1066返回index.php?level1=$1&level2=$2&articleID=1066
基本上,关卡的数量总是不同的,但我想根据需要返回这些关卡。另一个示例是/work/print/folder/archive/article/1066 return
index.php?level1=$1&level2=$2&level3=$3&level4=$4&articleID=1066感谢任何人的帮助!丹
发布于 2010-06-02 00:42:05
最后,我只是手动完成了!(尽管我更喜欢更具扩展性的解决方案)
# 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]发布于 2010-05-28 20:33:46
一个简单的解决方案是在php脚本中进行级别检测。
RewriteRule ^(.+)/article/(\d+)$ index.php?levelsUri=$1&articleID=$2然后你可以解析"levelsUri“请求值并检测你的php脚本中的级别。
https://stackoverflow.com/questions/2928569
复制相似问题