URL重写,我不能_GET它

时间:2015-01-11 20:39:46

标签: php .htaccess url-routing

在上周我试图为我的MVC php框架获得最佳结果但是没有阅读任何正则表达式的手册我从教程中了解了一下这是如何工作的,所以我的htacces文件是这样的:

RewriteEngine on
ErrorDocument 400 /index.php
ErrorDocument 401 /index.php
ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
ErrorDocument 500 /index.php
ErrorDocument 502 /index.php
ErrorDocument 504 /index.php
RewriteRule ^([a-z]*)?/?([a-z]*)?([a-z_]*)?$ index.php?controller=$1&action=$2$3 [NC,L]

我的网址中没有数字没有大写字母,只有小写字母,所以我尝试在这里制作一个动作函数得到另一个参数的方式我不知道确切的数字,但它们可能是一个或五个。 .anyway,在控制器和动作之后,我需要获取带有值的另一个参数,并且没有像id=$3这样的限制: index.php?controller=$1&action=$2 whould be /recover/password以及/recover/password?email=myemail@myweb.com&password=1q2w32e4tr5yt6yu7ui8i9o之后的其他内容等等! 一个星期,我在网上找不到类似的东西!任何人都可以帮助我,tcx?

1 个答案:

答案 0 :(得分:1)

看起来你只需要QSA标志:

ErrorDocument 400 /index.php
ErrorDocument 401 /index.php
ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
ErrorDocument 500 /index.php
ErrorDocument 502 /index.php
ErrorDocument 504 /index.php

RewriteEngine on

RewriteRule ^([a-z]+)/([a-z_]+)/?$ index.php?controller=$1&action=$2$3 [NC,L,QSA]

QSA(查询字符串追加)标志在添加新查询参数时保留现有查询参数。