Mod-Rewrite:需要帮助来优化重写规则

时间:2012-10-23 23:26:41

标签: mod-rewrite url-rewriting

在更改我的.htaccess链接之前,链接看起来像这样:

现在我用这段代码制作了一个.htaccess:

RewriteEngine on
RewriteRule ^index.php / [R,L,QSA]

现在上面的链接在浏览器地址栏中显示如下:

这几乎是我想要的,但我怎么能让它看起来像这样呢?

我尝试了很多不同的东西,但mod_rewriting不是我的强度。 我也希望像谷歌这样的搜索引擎使用新的URL(SEO)。

1 个答案:

答案 0 :(得分:0)

以下是将http://www.domain.tld/index.php?page=blog更改为http://www.domain.tld/blog的链接的解决方案:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^\w+$ index.php?page=$0 [L]
RewriteCond %{THE_REQUEST} index\.php
RewriteCond %{QUERY_STRING} ^page=(\w+)$
RewriteRule ^index\.php$ /%1? [R=301,L]

和以下链接:http://www.domain.tld/index.php?page=single_news&id=1&headline=This%20Is%20A%Headline

解决方案是:

RewriteRule ^blog/(\d+)-([\w-]+)$ index.php?page=single_news&id=$1&headline=$2

使用此代码后,链接如下所示:http://www.domain.tld/blog/2-this-is-a-headline