我需要将网站中的文章和个人资料链接更改为动态链接。即。
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
,它可以正常工作。但是,对于文章它没有 - 它只是没有显示任何东西。
我无法理解为什么如果用户名不止一个单词,它就不会在单词之间添加下划线:即使我添加到site.com/john_doe
之类的网址也不会有效。
所以,几乎所有上述代码仅适用于用户名AND,如果该用户名只有一个字。
答案 0 :(得分: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]