用于静默重写查询字符串(如 codeigniter)的 Apache 配置

用于静默重写查询字符串(如 codeigniter)的 Apache 配置

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,它什么也没显示。或者,查询字符串的值似乎为空。我不太确定我做错了什么。

相关内容