Codeigniter 重写查询字符串如下:
http://somedomain.com/index.php?q=something
成为:
http://somedomain.com/index.php/q/something
我想在为婚礼 RSVP 系统开发的(非常)轻量级网站上模仿这种行为。我不想使用 codeigniter 的臃肿功能,也不需要它提供的任何其他功能。我唯一想要的就是这个。
不幸的是,我不知道如何设置实现此目的的 mod-rewrite 规则。我可以设置一条转换为 的规则/q/something
,?q=something
但我无法获得一条在不更改用户正在查看的 URL 的情况下实现此目的的规则。
我基本上是在寻找实际上“静默”版本的重写。也就是说,我想要重写q/something
为?q=something
,但将用户的 URL 保留为q/something
。
提前致谢!
编辑
在该站点的 .htaccess 文件中,我有以下内容:
RewriteEngine on
RewriteRule ^/index.php/q/(.*) /index.php?q=$1
在站点的基本配置(/etc/apache2/sites-available/mysite.conf)中,我有:
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.mysite.com
DocumentRoot /var/www/www.mysite.com
Options -Indexes +FollowSymLinks
</VirtualHost>
index.php 文件当前只是打印出 的值$_GET['q']
。现在,当我访问网站 时http://www.mysite.com/index.php?q=12345
,它会按预期显示“12345”。但是,当我导航到 时http://www.mysite.com/index.php/q/12345
,它什么也没显示。或者,查询字符串的值似乎为空。我不太确定我做错了什么。