.htaccess中的mod_rewrite规则

时间:2017-06-20 07:06:57

标签: apache .htaccess mod-rewrite url-rewriting

我有一个链接

http://example.com/fightblog/home/heading.php?id=15&title=whatever

使用此规则后

Options -MultiViews
RewriteEngine On
RewriteBase /fightblog/home/

RewriteCond %{THE_REQUEST} /heading\.php\?id=([^\s&]+)&title=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [R=302,L,NE]

RewriteRule ^(\w+)/(\d+)/?$ heading.php?id=$1&title=$2 [L,QSA,NC]

我可以重定向到

http://example.com/fightblog/home/15/whatever

这是正确的。但我的查询是,它给出错误404.找不到页面。

如何解决此错误?并且我还想在重定向后使用$ _GET ['id']中的id值

1 个答案:

答案 0 :(得分:1)

将重写规则更改为:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w.-]+)/([\w.-]+)/?$ heading.php?id=$1&title=$2 [L,QSA,NC]

这样两个参数都接受单词字符或连字符。