1

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 errorifabc.....字符串已发送。我怎样才能归档这个?

4

1 回答 1

0

尝试

RewriteRule ^([a-z]+)$ ?a=$1 [L]
RewriteRule .* 404.php

如果第一个规则匹配,它会将值放入a,否则他会将用户发送到404.php

另一个编辑

对不起,我一开始误解了你的问题。

您的正则表达式仅在此处捕获拉丁(英语)字母:^([a-z]+)$,因此,如果您想包含点,请使用:^([a-z\.]+)$或者如果您想捕获任何内容,请使用:^(.*)$

原创- 我将其保留在这里,因为它可能仍然对您有用

利用

RewriteRule ^([a-z]+)$ ?a=$1 [QSA]

这将在您的重写规则之后传递查询字符串。

有关该主题的更多信息,请尝试这篇文章

于 2012-11-08T11:14:01.267 回答