-1

这是我为 MVC 设置的 htaccess。

  <IfModule mod_rewrite.c>
        RewriteEngine On  
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
    </IfModule>

所以对localhost/users/的任何请求都会重定向到localhost?url=users/

但是当 url 中有一些可用的数据时,例如:localhost/users/?msg=hello

我在 $_GET['url'] 中缺少?msg=hello 。是否可以重定向到类似localhost/users/msg=hello/

4

2 回答 2

4

使用"QueryString Append"选项,

RewriteRule ^(.*)$ index.php?route=/$1 [QSA,L]

引用自:.htaccess: GET 变量在重写中丢失

于 2013-08-21T16:03:18.643 回答
0

您要尝试做的事情将非常复杂。作为替代方案,您可以尝试以下方法:

RewriteRule ^(.*)$ index.php/$1 [PT,L]

使用该规则时,您可以通过 $_SERVER['REQUEST_URI'] 访问 URL。

您丢失 get 参数的原因是服务器使用两个“?”创建了 URL。前任:

http://localhost/?url=users/?msg=123
于 2013-08-21T16:04:01.930 回答