我正在使用CodeIgniter处理PHP应用程序。对于通过代理访问它的人来说,该应用程序是可访问的,该代理将向查询字符串添加一些信息。因此,如果用户请求以下内容:http://myapplication.com/main/,代理会自动将其转换为http://myapplication.com/main/?user=userid。
请不要以这种方式批评我传递用户ID,这是客户要求这样做,而不是我的! ;)
我对CodeIgniter不是很熟悉,但我知道它使用的是段而不是查询字符串,但我可以将其更改为查询字符串。问题是,我不想在任何地方都使用查询字符串。
问题是,我没有通过该代理工作,所以我想在我的本地计算机上模拟它。如果我在位置栏中手动输入:http://localhost/main/?user=12345,我可以使用$ _GET ['user']在我的应用程序中使用它。但我希望所有请求都有用户ID,而无需手动添加。所以这就是我在.htaccess中所做的:
RewriteEngine on
RewriteCond $1 !^(index\.php|_|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1?user=12345 [L]
我的.htaccess工作正常,因为如果我在index.php文件中print_r($ _ GET),那么信息就在那里。但是,如果我从CI控制器尝试相同的操作,则$ _GET数组为空。奇怪的是,正如我上面所说,如果我在浏览器的位置栏中手动输入,可以从我的控制器获取信息。
任何人都可以帮我找出导致我的查询字符串添加到.htaccess中导致我的CI控制器不可用的原因吗?
谢谢!
答案 0 :(得分:1)
RewriteRule ^(.*)$ /index.php/?user=12345&$1 [L]
编辑: 你怎么检查它?通过“$ _GET数组为空”如果是,我建议阅读Enabling $_GET in codeigniter