如何使用.htaccess mod_rewrite制作seo友好的网址

时间:2019-02-18 13:45:50

标签: .htaccess mod-rewrite

我正在尝试使用.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]

但是它没有给我想要的结果。任何帮助将不胜感激!

1 个答案:

答案 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键的值。 %1backreference(向下滚动一点)到(查询字符串的)正则表达式中捕获的组号。

  • 请注意,如果要对查询字符串中的任何键值对执行此操作,请将title更改为\w+或{{1} }更精确。