猿问

带有 .htaccess 的简单漂亮的 url

我有一个单页博客 php 网站。内容是根据获取参数动态加载的。我想用我的 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 参数。所以它不起作用。


繁华开满天机
浏览 111回答 1
1回答

慕婉清6462132

您需要使用 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]
随时随地看视频慕课网APP
我要回答