-1

我需要将我网站中的文章和个人资料链接更改为动态链接。IE

  • 对于文章site.com/article.php?id=12 变成site.com/article/this_is_title_of_article
  • 对于个人资料site.com/ref.php?user=23变成site.com/john_doe

所以我写这个给.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ ref.php?user=$1 [QSA,L]
RewriteRule ^articles/(.*)$ article.php?user=$1 [QSA,L]

因此,对于配置文件它有效。您可以键入site.com/username,它可以工作。但是,对于那些它没有的文章——它只是不显示任何东西。

我不明白为什么如果用户名超过一个单词,它不会在单词之间添加下划线:即使我添加到 URL 中,site.com/john_doe它也不起作用。

所以,上面的代码几乎只适用于用户名并且如果该用户名只有一个单词。

4

1 回答 1

0

规则是从上到下评估的,因此您的用户规则很可能在您的文章规则有机会之前就捕捉到了所有内容。

试试这个:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^articles/(.*)$ article.php?user=$1 [QSA,L]
RewriteRule ^(.*)$ ref.php?user=$1 [QSA,L]
于 2012-11-04T06:12:05.297 回答