我正在尝试使用.htaccess文件创建SEO友好的网址。
我要更改的网址如下:
https://www.example.com/category/?title=a+really+really+long+title
我想拥有的是:
https://www.example.com/category/a+really+really+long+title/
我尝试过:
RewriteEngine On
RewriteRule ^/category/?title=(.+)$ ^/category/$1/ [NC]
但是它没有给我想要的结果。任何帮助将不胜感激!
答案 0 :(得分:1)
RewriteEngine On
RewriteCond %{QUERY_STRING} ^title\=(.+)$ [NC]
RewriteRule ^/?category/?$ /category/%1 [NC,R,L,QSD]
我们首先检查使用RewriteCond
是否存在查询字符串。如果它与^title\=(.+)$
相匹配,则意味着,如果存在带有键title
的查询字符串,则捕获它的值。
使用RewriteRule,如果请求URI具有category
,则我们匹配。如果是,则将其重写为/category/%1
,其中%1
是在查询条件的重写条件下匹配的title
键的值。 %1
是backreference(向下滚动一点)到(查询字符串的)正则表达式中捕获的组号。
请注意,如果要对查询字符串中的任何键值对执行此操作,请将title
更改为\w+
或{{1} }更精确。