使用 PHP 为多个 GET 变量重写 htaccess URL 基础
Rewrite htaccess URL base for multiple GET variables with PHP
我想创建一个 PHP 文件来处理多个 GET 变量并相应地输出数据,但是我想删除基础 "category" URL 元素以便使用 htaccess 缩短它,像这样:
http://website.com/news/politics
http://website.com/videos/funny
http://website.com/posts/food
目前我为每种类型使用不同的文件,但这很痛苦:
RewriteRule ^news/([^/]+)/?$ tpl-news.php?slug= [L,QSA,NC]
RewriteRule ^videos/([^/]+)/?$ tpl-videos.php?slug= [L,QSA,NC]
RewriteRule ^posts/([^/]+)/?$ tpl-posts.php?slug= [L,QSA,NC]
etc ...
或者,我可以使用以下内容:
RewriteRule ^category/([^/]+)/?$ tpl-category.php?type=&slug= [L,QSA,NC]
我不想 URL 喜欢:
http://website.com/category/news/politics
http://website.com/category/videos/funny
http://website.com/category/posts/food
但想从 URL 中删除 "category",如下所示:
http://website.com/news/politics
http://website.com/videos/funny
http://website.com/posts/food
但是其他页面/URLs,例如下面的页面,不应受此规则影响:
http://website.com/account/user
http://website.com/newspost/abcdef // a single post page
http://website.com/videopost/abcdef // a single video page
这些"types"(新闻,视频,帖子,...)数量有限,即我不反对预先定义这些,这样它们就不会与其他URL的冲突页面(例如图像文件夹、管理部分、用户个人资料子页面等)
您可以使用这个通用规则:
RewriteRule ^(news|videos|post)/([^/]+)/?$ tpl-category.php?type=&slug= [L,QSA]
或者如果您想使用现有的 .php
文件,例如tpl-news.php
、tpl-post.php
等然后使用:
RewriteRule ^(news|videos|post)/([^/]+)/?$ tpl-.php?slug= [L,QSA]
我想创建一个 PHP 文件来处理多个 GET 变量并相应地输出数据,但是我想删除基础 "category" URL 元素以便使用 htaccess 缩短它,像这样:
http://website.com/news/politics
http://website.com/videos/funny
http://website.com/posts/food
目前我为每种类型使用不同的文件,但这很痛苦:
RewriteRule ^news/([^/]+)/?$ tpl-news.php?slug= [L,QSA,NC]
RewriteRule ^videos/([^/]+)/?$ tpl-videos.php?slug= [L,QSA,NC]
RewriteRule ^posts/([^/]+)/?$ tpl-posts.php?slug= [L,QSA,NC]
etc ...
或者,我可以使用以下内容:
RewriteRule ^category/([^/]+)/?$ tpl-category.php?type=&slug= [L,QSA,NC]
我不想 URL 喜欢:
http://website.com/category/news/politics
http://website.com/category/videos/funny
http://website.com/category/posts/food
但想从 URL 中删除 "category",如下所示:
http://website.com/news/politics
http://website.com/videos/funny
http://website.com/posts/food
但是其他页面/URLs,例如下面的页面,不应受此规则影响:
http://website.com/account/user
http://website.com/newspost/abcdef // a single post page
http://website.com/videopost/abcdef // a single video page
这些"types"(新闻,视频,帖子,...)数量有限,即我不反对预先定义这些,这样它们就不会与其他URL的冲突页面(例如图像文件夹、管理部分、用户个人资料子页面等)
您可以使用这个通用规则:
RewriteRule ^(news|videos|post)/([^/]+)/?$ tpl-category.php?type=&slug= [L,QSA]
或者如果您想使用现有的 .php
文件,例如tpl-news.php
、tpl-post.php
等然后使用:
RewriteRule ^(news|videos|post)/([^/]+)/?$ tpl-.php?slug= [L,QSA]