我正在尝试为配置文件页面编写.htaccess
RewriteRule
。我希望该规则在SQL数据库中查询用户配置文件,如果该数据返回结果,则加载profile.php
页面。示例:
www.example.com/username
- 或
www.example.com/user.name
- 或CCD_ 6等
但是,我还有其他页面,如/login
、/registration
、/
、/chat
等等。每次尝试某个内容时,我都会遇到问题。
我尝试过以下几种:
RewriteEngine On
RewriteRule ^(login)$ login.php [QSA]
RewriteRule ^(logout)$ logout.php [QSA]
RewriteRule ^([w-]+)/?$ profile.php?pid=$1 [L,QSA]
我正在尽可能多地学习,但我不理解regex语法和条件。上面的规则允许我使用以前的所有页面,但它会捕获profile.php
页面中的所有其他页面。我做错了什么?
请尝试以下regex,我希望它能解决您的问题。
^([w]+|[w-]+.+[w]+)$
您可以随时使用此链接来测试您的regex。
在.htaccess文件中尝试此操作
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ profile.php?pid=$1
请确保在profile.php中设置了与参数匹配的特定条件,如果不匹配,则会显示错误消息或将您重定向到404页面那将是一个不错的