0

我有一个小问题。我正在使用 htaccess 来获得更多用户友好的 url,但是当我在 URL 中添加一些空格时,它给了我下一个错误:

The requested URL /capitole/Limba Engleza was not found on this server.

我的 htaccess 代码如下所示:

<ifModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule nota.jpg php/img_nota.php [R=301]
RewriteRule ^login login.php
RewriteRule ^recuperare recuperare.php
RewriteRule ^inregistrare inregistrare.php
RewriteRule ^/?([\sa-zA-Z0-9_-]+)(/?([a-z0-9=]+)(/=)?([a-z0-9=]+)?)?$ index.php?page=$1&par1=$3&par2=$5 [NC,L]
</ifModule>

有人能帮我吗?

4

2 回答 2

1

URL 不能包含空格。URL 中的空格使用百分比 (%) 进行编码。

如果它是查询字符串(在 ? 之后),通常使用运算符+(例如:)big+ships。如果字符串在 URL 的路径中,则%20使用 then(例如:)big%20ships

如 RFC 中所述:rfc2396

空格字符被排除在外,因为
当 URI 被
转录或排版或经受文字
处理程序的处理时,重要的空格可能会消失,并且可能会引入无关紧要的空格。
在许多上下文中,空格也用于分隔 URI 。

空格 = US-ASCII 编码字符 20 十六进制

于 2013-07-05T09:02:30.650 回答
-1

您的第二段不接受space将其修改为如下所示。

RewriteRule ^/?([\sa-zA-Z0-9_-]+)(/?([\sA-Za-z0-9=]+)(/=)?([a-z0-9=]+)?)?$ index.php?page=$1&par1=$3&par2=$5 [NC,L]
于 2013-07-05T09:02:57.980 回答