我的RewriteRule匹配所有内容

时间:2017-01-02 02:37:52

标签: apache .htaccess mod-rewrite

我试图弄清楚为什么这条规则匹配所有内容,以及如何只匹配author.php?user_name = user_name

RewriteRule ^author/([A-Za-z0-9-]+)/?$  author.php?user_name=$1 [NC,L]

我为作者页面工作(例如:/ author / joe),但是如果我转到about页面,例如,我得到 /作者/约

根据要求,我正在添加.htaccess文件的完整内容:

RewriteEngine On
RewriteRule ^author/([A-Za-z0-9-]+)/?$  author.php?user_name=$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

1 个答案:

答案 0 :(得分:2)

目前还不完全清楚你要做什么。也许在您的HTML中,您应该以斜杠开头链接到/about,因此不会相对于当前页面创建URL,而是创建网站的根目录?

不过,您可以稍微缩短一下您的规则:

RewriteRule ^author/([\w-]+)/?$  author.php?user_name=$1 [NC,L]