繁体   English   中英

用PHP重写htaccess的多个GET变量的URL库

[英]Rewrite htaccess URL base for multiple GET variables with PHP

我正在寻找一个PHP文件,该文件可以处理多个GET变量并相应地输出数据,但是我想使用htaccess删除基本的“类别” URL元素以缩短它,如下所示:

http://website.com/news/politics
http://website.com/videos/funny
http://website.com/posts/food

目前,我为每种类型使用不同的文件,但这很麻烦:

RewriteRule ^news/([^/]+)/?$ tpl-news.php?slug=$1 [L,QSA,NC]
RewriteRule ^videos/([^/]+)/?$ tpl-videos.php?slug=$1 [L,QSA,NC]
RewriteRule ^posts/([^/]+)/?$ tpl-posts.php?slug=$1 [L,QSA,NC]
etc ...

另外,我可以使用以下方法:

RewriteRule ^category/([^/]+)/?$ tpl-category.php?type=$1&slug=$2 [L,QSA,NC]

我不想有这样的URL:

http://website.com/category/news/politics
http://website.com/category/videos/funny
http://website.com/category/posts/food

但想从网址中删除“类别”,如下所示:

http://website.com/news/politics
http://website.com/videos/funny
http://website.com/posts/food

但是,其他页面/ URL,例如下面的页面/ URL,不应受到此规则的影响:

http://website.com/account/user
http://website.com/newspost/abcdef // a single post page
http://website.com/videopost/abcdef // a single video page

这些“类型”(新闻,视频,帖子等)数量有限,即我不反对预定义这些类型,因此它们不会与页面的其他URL(例如图像文件夹,管理部分,用户)冲突个人资料子页面等)

您可以使用以下通用规则:

RewriteRule ^(news|videos|post)/([^/]+)/?$ tpl-category.php?type=$1&slug=$2 [L,QSA]

或者,如果您想使用现有的.php文件,例如tpl-news.phptpl-post.php等,请使用:

RewriteRule ^(news|videos|post)/([^/]+)/?$ tpl-$1.php?slug=$2 [L,QSA]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM