2

我正在研究我的网站的照片部分,并在选择哪些图片查看您有不同的导航菜单以获得您想要的(最新,趋势,朋友,喜爱等),还可以按日期对图片进行排序, 评分, 意见等

哦,还有一个分页系统,我用它来每页只显示几张图片。

现在我有这个:

RewriteRule ^photo$ photo.php?tab=latest
RewriteRule ^photo/trending$ photo.php?tab=trending
RewriteRule ^photo/friends$ photo.php?tab=friends
RewriteRule ^photo/favorite$ photo.php?tab=favorite

RewriteRule ^photo/page:([0-9]+)/$ photo.php?tab=latest&page=$1
RewriteRule ^photo/trending/page:([0-9]+)/$ photo.php?tab=trending&page=$1
RewriteRule ^photo/friends/page:([0-9]+)/$ photo.php?tab=friends&page=$1
RewriteRule ^photo/favorite/page:([0-9]+)/$ photo.php?tab=favorite&page=$1

RewriteRule ^photo/sort:([A-Za-z0-9]+)/page:([0-9]+)/$ photo.php?tab=latest&page=$2&sort=$1
RewriteRule ^photo/trending/sort:([A-Za-z0-9]+)/page:([0-9]+)/$ photo.php?tab=trending&page=$2&sort=$1

And so on

我想知道是否有某种可能性让 .htaccess 文件检测到任何page:([0-9]+)内容,并自动将带有页码的变量发送到 php 文件。这会很有帮助,因为我还有一篇文章、视频和论坛部分,它们将具有相同的功能。

4

1 回答 1

1

尝试用这个替换:

# Extract out the "page" and "sort" parts of the URI, and append them to the query string
RewriteRule (.*)/page:([0-9]+)/(.*) /$1/$3?page=$2 [L,QSA]
RewriteRule (.*)/sort:([A-Za-z0-9]+)/(.*) /$1/$3?sort=$2 [L,QSA]

# Proceed with the regular routing
RewriteRule ^photo/?$ photo.php?tab=latest  [L,QSA]
RewriteRule ^photo/trending/?$ photo.php?tab=trending [L,QSA]
RewriteRule ^photo/friends/?$ photo.php?tab=friends [L,QSA]
RewriteRule ^photo/favorite/?$ photo.php?tab=favorite [L,QSA]

这里的关键是在任何地方都使用QSA标志,这样当查询字符串放在一起时,可以根据需要添加新的位。另一件事是常规路由部分,我添加/?到正则表达式匹配的末尾,因为对于页面/排序处理,您可能会以斜杠结尾。

于 2012-07-23T15:54:49.710 回答