Mod重写模式问题

时间:2012-10-21 16:21:00

标签: php mysql regex .htaccess

  

可能重复:
  What literal characters should be escaped in a regex?

RewriteRule ^profile/[A-Za-z_-\d\^\.]/*$ ./index.php?page=showuser&username=$1

我是mod重写的新手。有人能告诉我这里的模式有什么问题吗?我试图只让名字传递有字符,数字, - ,^,_和。符号,但当我使用该语法时,它会给我一个错误。

2 个答案:

答案 0 :(得分:2)

4件事:

  • 在开头缺少斜线
  • 你的角色课后忘记了+:)
  • 你也忘记了用户名:p
  • 你应该始终将-字符放在类
  • 开头的caracter类中

(另外,你不需要在字符类中除掉]以外的任何东西)

RewriteRule ^/profile/([-A-Za-z_\d^.]+)/*$ ./index.php?page=showuser&username=$1

答案 1 :(得分:0)

尝试

RewriteRule ^profile/([\w\d\.^_-]+)/?$ ./index.php?page=showuser&username=$1

使用

可能更好
RewriteRule ^profile/([\w\d\.^_-]+)/?$ /index.php?page=showuser&username=$1

如果index.php文件位于公用文件夹的顶部(根目录)。