我有一个单页博客php网站。 内容是根据get参数动态加载的。我想用我的htaccess做漂亮的网址。我有这些网址:
website.com/index.php?category=review&page=1
我想要这个:
website.com/category/review/page/1
我也使用article作为get参数。所以我想改变一下:
website.com/index.php?article=12345-name-of-article
对此:
website.com/article/12345-name-of-article
我对htaccess完全陌生,因此将不胜感激。
我尝试了以下重写规则:
RewriteRule ^article/([0-9a-zA-Z_-]+)$ index.php?article=$i [NC,L]
。
它以某种方式起作用,但是php脚本无法识别url参数。因此它不起作用。
非常感谢您!
答案 0 :(得分:1)
您需要使用QSA-当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并将其替换为新生成的查询字符串。使用[QSA]标志会使查询字符串组合在一起。 :
RewriteEngine On
RewriteRule ^article/([\w-]+)(?:\.html|/)?$ index.php?article=$1 [NC,QSA,L]
RewriteRule ^category/([\w-]+)/page/([\w-]+)(?:\.html|/)?$ index.php?category=$1&page=$2 [NC,QSA,L]