我index.php
只有一行
<?php echo $_GET['a']; ?>
如果我输入url
:
http://localhost/test/?a=abc.....
我得到了
abc.....
但如果我创建.htaccess
并写:
RewriteEngine on
RewriteRule ^([a-z]+)$ ?a=$1
如果我输入url
:
http://localhost/test/abc.....
我只获得abc
(没有点.....
)
为什么会这样?
如果发送404 error
字符串,我想获得abc.....
。我怎么能达到这个目的呢?
答案 0 :(得分:0)
尝试
RewriteRule ^([a-z]+)$ ?a=$1 [L]
RewriteRule .* 404.php
如果第一个规则匹配,则会将值放入a
,否则他会将用户发送到404.php
另一个编辑
对不起,我一开始误解了你的问题。
你的正则表达式只捕获拉丁文(英文)字母,在这里:^([a-z]+)$
,所以如果你想要包含点数,请使用:^([a-z\.]+)$
或者如果你想抓住任何东西使用:^(.*)$
< / p>
ORIGINAL - 我保留在这里,因为它可能仍然对您有用
使用
RewriteRule ^([a-z]+)$ ?a=$1 [QSA]
这将在您的重写规则之后传递查询字符串。
有关此主题的更多信息,请尝试this article。