Php .htaccess重写规则赢得';不允许';及@

Php .htaccess重写规则赢得';不允许';及@,php,.htaccess,Php,.htaccess,我有一个重写规则,可以将domain.co.uk/member.php?x=$member重写为domain.co.uk/$member 看起来是这样的: RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ member.php?x=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ member.php?x=$1 我试着在方括号中加上“和”,但是我得到了一个500的内部服务器错误。我需要这些人的用户名字符 如何执行此操作?@用于在

我有一个重写规则,可以将domain.co.uk/member.php?x=$member重写为domain.co.uk/$member

看起来是这样的:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ member.php?x=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ member.php?x=$1
我试着在方括号中加上“和”,但是我得到了一个500的内部服务器错误。我需要这些人的用户名字符


如何执行此操作?

@
用于在URI字符串中指定用户和密码,如下所示:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ member.php?x=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ member.php?x=$1
http://user:passw...@主机/路径

您需要对其进行URL编码:
%40

您的路径将是:
/user%40foo.com
或类似的内容

这应该从以下方面起作用:

字符“;”、“/”、“?”、“:”, “@”、“=”和“&”是字符 这可能是为特殊目的而保留的 计划中的含义。没有别的 字符可以保留在 计划

以及:

因此,只有字母数字,特殊的 字符“$-!*”(),”和
用于其应用程序的保留字符 可以使用保留用途
在URL中未编码

你应该做什么:

  • 将“@”编码为
    %40
  • 对.htaccess中的单引号进行转义,如下所示:
    \'

主题外:添加
将使尾部的
/
可选,而无需同时写入两行:
^([a-zA-Z0-9_-]+)/?$