在.htaccess中重写规则旁边的空$ _GET参数,然后是QSA标志

时间:2013-09-02 23:08:23

标签: php .htaccess

我已经尝试过在stackoverflow上发布的各种解决方案,但它们似乎都没有用。

我真的很想知道我在这里缺少什么,目前.htaccess看起来像这样:

RewriteEngine On
RewriteRule ^register/?$ ./register.php?reference=$1 [L,QSA]

我正在获取这样的网址:

domain.com/register/ENIGMA-45

这一切都很好,但是$_GET param没有通过。

我试过print_r($_GET)print($_SERVER['QUERY_STRING]);都是空的。

VirtualHost config:
<VirtualHost 199.99.99.99:82>
    ServerName dot.magicaldomain.com
    ServerAlias www.dot.magicaldomain.com
    DocumentRoot /home/dot/public_html
    ServerAdmin webmaster@dot.magicaldomain.com
    ## User dot # Needed for Cpanel::ApacheConf
    <IfModule mod_userdir.c>
        Userdir disabled
        Userdir enabled dot 
    </IfModule>
    <IfModule mod_suphp.c>
        suPHP_UserGroup dot dot
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        <IfModule !mod_ruid2.c>
           SuexecUserGroup dot dot
        </IfModule>
    </IfModule>
    <IfModule mod_ruid2.c>
       RUidGid dot dot
    </IfModule>
    CustomLog /usr/local/apache/domlogs/dot.magicaldomain.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    CustomLog /usr/local/apache/domlogs/dot.magicaldomain.com combined
    Options -ExecCGI -Includes
    RemoveHandler cgi-script .cgi .pl .plx .ppl .perl
</VirtualHost>

1 个答案:

答案 0 :(得分:2)

捕获:

domain.com/register/ENIGMA-45

您可以使用:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^register/?([^/]*|)/?$ /register.php?reference=$1 [L]

将此添加到您的virtualhost

<Directory "/home/dot/public_html">
    Options -Indexes FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>