为什么这个mod_rewrite不起作用?

时间:2013-11-03 17:29:33

标签: .htaccess mod-rewrite url-rewriting apache2 debian

我正面临一个我无法解决的问题。

这是我的.htaccess文件

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w\d~%.:_\-]+)$ index.php?page=$1 [QSA]
RewriteRule ^news/([0-9]+) /news?id=$1
RewriteRule ^contact/([0-9]+) /contact?do=$1
RewriteRule ^account/([a-zA-Z]+) /account?action=$1
RewriteRule ^admin/([a-zA-Z]+) /admin?action=$1

一切都适用于管理员和帐户规则 当我去那个工作一次,然后我到达请求的页面 即 www.domain.com/page 要么 www.domain.com/news/3

所有工作规则都以数字结尾,例如新闻规则, 但管理员和帐户规则并不以数字结尾,而是以字符串形式结束 www.domain.com/account/settings

哪个不起作用。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

([0-9] +)仅匹配数字。如果要匹配字符串,请使用(。+)匹配每个字符或其他字符组(例如[a-zA-Z] +)。

要了解如何使用正则表达式,我建议: http://www.regular-expressions.info/