0

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

这是我的 .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

这不起作用。

任何人都可以帮助我?

4

1 回答 1

1

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

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

于 2013-11-03T17:34:59.283 回答