.htaccess重写index.php的选项并获取变量

.htaccess重写index.php的选项并获取变量,php,apache,mod-rewrite,web-deployment,Php,Apache,Mod Rewrite,Web Deployment,我对重写选项有问题,在互联网上找不到正确的答案,所以我希望这个社区能帮助我 我正在本地处理一个web项目,并使用XAMPP作为本地web服务器。 我制作了一个VirtulHost(basic.localhost),现在mod_重写选项出现了问题 当存在url时:basic.localhost/index.php/var1=option1&var2=option2&var3=option3&var4=option4 我想将url重写为:basic.localhost/option/option2/

我对重写选项有问题,在互联网上找不到正确的答案,所以我希望这个社区能帮助我

我正在本地处理一个web项目,并使用XAMPP作为本地web服务器。 我制作了一个VirtulHost(basic.localhost),现在mod_重写选项出现了问题

当存在url时:basic.localhost/index.php/var1=option1&var2=option2&var3=option3&var4=option4 我想将url重写为:basic.localhost/option/option2/option3/option4

var1到var4变量用作GET变量,用于从数据库中选择内容。 这是我现在的.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D

我尝试的所有重写规则都不起作用…

我找到了变量问题的答案:

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L,QSA]
        RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2&var3=$3 [L,QSA]
        RewriteRule ^([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2 [L,QSA]
        RewriteRule ^([^/]+)$ index.php?var1=$1 [L,QSA]
    </IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$index.php?var1=$1&var2=$2&var3=$3&var4=$4[L,QSA]
重写规则^([^/]+)/([^/]+)/([^/]+)$index.php?var1=$1&var2=$2&var3=$3[L,QSA]
重写规则^([^/]+)/([^/]+)$index.php?var1=$1&var2=$2[L,QSA]
重写规则^([^/]+)$index.php?var1=$1[L,QSA]

现在只有index.php存在问题。

我终于找到了解决方案:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L,QSA]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2&var3=$3 [L,QSA]
    RewriteRule ^([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2 [L,QSA]
    RewriteRule ^([^/]+)$ index.php?var1=$1 [L,QSA]
</IfModule>

重新启动发动机
RewriteCond%{THE_REQUEST}^GET.*index\.php[NC]
重写规则(.*)索引\.php/*(.*)/$1$2[R=301,NE,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$index.php?var1=$1&var2=$2&var3=$3&var4=$4[L,QSA]
重写规则^([^/]+)/([^/]+)/([^/]+)$index.php?var1=$1&var2=$2&var3=$3[L,QSA]
重写规则^([^/]+)/([^/]+)$index.php?var1=$1&var2=$2[L,QSA]
重写规则^([^/]+)$index.php?var1=$1[L,QSA]