使用htaccess摆脱不需要的/在地址栏

时间:2016-01-30 05:19:49

标签: .htaccess

我的htaccess如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?/$1 [L]

当用户输入http://example.com/thequery/时,这就是他们在地址栏中看到的内容,PHP得到" / thequery /"作为想要的行为的查询字符串。但是,如果用户在服务器响应后立即在地址栏中输入example.com?thequery,他们会看到example.com/?thequery和PHP得到" thequery"作为查询字符串,该部分(查询)是可以的,但我不能为我的生活弄清楚如何删除或阻止" /"从第二个示例的地址栏中的url,同时保留第一个示例的正确行为,以便用户在第二个示例中始终只看到example.com?thequery。有人可以帮忙。

1 个答案:

答案 0 :(得分:0)

域名之后总是需要您正在谈论的斜杠。如果您请求domain.tld?something,则始终会被重定向到domain.tld/?something,而不会失败。

你无法改变这种行为 - 这是故意的。

  

如果      abs_path不存在于URL中,它必须以" /"什么时候      用作资源的Request-URI(第5.1.2节)。

来源:http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGbpjYWa