Php apachemod_rewrite:^([A-Za-z\/]&x2B;)$和^(.*)之间的差异$

Php apachemod_rewrite:^([A-Za-z\/]&x2B;)$和^(.*)之间的差异$,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我真的不明白为什么我的.htaccess文件与^(.*)$一起工作时出错。。。 这是我的.htaccess: RewriteEngine On RewriteRule ^(.*)$ index.php?alias=$1 [L] 我只想将所有文本放在名为“alias”的GET参数中主机地址之后。 这样做的结果是,在我的PHP脚本“index.PHP”中,$\u GET['alias']的值是“index.PHP”,而不是我的主机地址后面的值。 如果我像这样更改.htaccess: Rewrite

我真的不明白为什么我的.htaccess文件与
^(.*)$
一起工作时出错。。。 这是我的.htaccess:

RewriteEngine On
RewriteRule ^(.*)$ index.php?alias=$1 [L]
我只想将所有文本放在名为“alias”的GET参数中主机地址之后。 这样做的结果是,在我的PHP脚本“index.PHP”中,
$\u GET['alias']
的值是“index.PHP”,而不是我的主机地址后面的值。 如果我像这样更改.htaccess:

RewriteEngine On
RewriteRule ^([A-Za-z\/]+)$ index.php?alias=$1 [L]
我最终将使用正确的值获取['alias']。 例如,如果我请求,在第一种情况下,我将获得
$\u get['alias']='index.php'
。在第二种情况下,我将
get$\u get['alias']='别名的值'
。 那么有人能解释一下
^([A-Za-z\/]+)$
^(.*)$
之间的区别吗?
提前非常感谢。:)

当您放置。*时,它将匹配任何url,因此您将以递归重定向结束,而当您有特定的正则表达式元素时,它将工作,因为它仅匹配您的第一个url。它与目标url不匹配,因为它中有一个“等于”符号。表达式的意思是除了点以外的任何东西

至于表达式
^([A-Za-z\/]+)$
,它将获得从A到z以及从A到z的字符