.htaccess 重写URL以删除查询字符串

.htaccess 重写URL以删除查询字符串,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个URL需要重新格式化example.com/?article\u category=lifety我希望将其格式设置为:example.com/lifety。但是,当我尝试用.htaccess文件重新格式化它时,它不起作用。My.htaccess文件与我的文件位于同一目录中。文件名为index.php 以下是我提出的重写规则: RewriteRule ^([\w-]+)/?$ index.php?article_category=$1 [QSA,L] 我不知道为什么这不起作用。我做错了什

我有一个URL需要重新格式化
example.com/?article\u category=lifety
我希望将其格式设置为:example.com/lifety。但是,当我尝试用.htaccess文件重新格式化它时,它不起作用。My.htaccess文件与我的文件位于同一目录中。文件名为index.php

以下是我提出的重写规则:

RewriteRule ^([\w-]+)/?$ index.php?article_category=$1 [QSA,L]
我不知道为什么这不起作用。我做错了什么?

有用的文档:&

第1行:检查包含
文章类别=([a-z]+)
文章类别=生活方式的查询字符串是否匹配

第2行:如果URL是
example.com
example.com/
,则永久重定向到
/livelity
%1
是模式的重写二次反向引用、分组部分(在括号中
([a-z]+)

第3/4行:如果URL不是常规文件和目录


第5行:如果URL以字母开头,请将URL重写为
index.php?article_category=$1

这确实有效,但当我使用example.com/lifesture时,它会将我重定向到404。它不读取index.php文件,如果我读取example.com/index.php?article_category=lifety它可以工作,我如何使example.com/lifety从index.php开始工作?它也可以工作于index.php/lifety,但不只是example.com/lifetylejust edited,您可以使用这些规则剥离查询字符串并进行重定向,并将URL重写为
index.php?article_category=
Hmm,这也会影响其他目录中的其他index.php文件…是否有解决方案只修复根目录中的特定index.php文件?
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]