重写URL以删除查询字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重写URL以删除查询字符串相关的知识,希望对你有一定的参考价值。
我有一个需要重新格式化的URL。 example.com/?article_category=lifestyle
我希望将其格式化为:example.com/lifestyle。但是,当我尝试使用我的.htaccess文件重新格式化它时,它不起作用。我的.htaccess文件与我的文件位于同一目录中。文件名是index.php。
这是我提出的重写规则:
RewriteRule ^([w-]+)/?$ index.php?article_category=$1 [QSA,L]
我不知道为什么这不起作用。我究竟做错了什么?
答案
有用的文档:RewriteCond Directive和RewriteRule Directive
RewriteCond %{QUERY_STRING} article_category=([a-z]+)
RewriteRule ^/?$ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]+) index.php?article_category=$1 [QSA,L]
第1行:检查包含article_category=([a-z]+)
,article_category=lifestyle
的查询字符串是否匹配
第2行:如果URL是example.com
或example.com/
,永久重定向到/lifestyle
,%1
是RewriteCond反向引用,分组部分(在括号中([a-z]+)
)的模式
第3/4行:如果URL不是常规文件和目录
第5行:如果URL以字母开头,请将URL重写为index.php?article_category=$1
以上是关于重写URL以删除查询字符串的主要内容,如果未能解决你的问题,请参考以下文章