.htaccess重写导致空$ _GET的规则

时间:2016-08-27 23:53:07

标签: php .htaccess url-rewriting get

我遇到一个问题,在我的一些干净的url页面上,$ _GET值返回为null。

我的网址重写:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ /$1 [L,R=301] !facebookexternalhit
RewriteCond %{HTTP_HOST} ^codesmite.com [NC] !facebookexternalhit
RewriteRule ^(.*)$ http://www.codesmite.com/$1 [L,R=301,NC,QSA]


# internally add a trailing slash to directories
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,QSA]

RewriteRule ^([0-9]+)/?$ index2.php?section=index&page=$1 [NC,QSA]
RewriteRule ^freebies/?$ index2.php?section=freebies&page=1 [L,NC,QSA]
RewriteRule ^articles/?$ index2.php?section=articles&page=1 [L,NC,QSA]
RewriteRule ^deals/?$ index2.php?section=deals&page=1 [L,QSA,NC]
RewriteRule ^freebies/([0-9]+)/?$ index2.php?section=freebies&page=$1 [NC,L,QSA]
RewriteRule ^articles/([0-9]+)/?$ index2.php?section=articles&page=$1 [NC,L,QSA]
RewriteRule ^deals/([0-9]+)/?$ index2.php?section=deals&page=$1 [NC,L,QSA]
RewriteRule ^article/(.*)$ article.php?stitle=$1 [NC,L,QSA]
RewriteRule ^deal/(.*)$ deal.php?stitle=$1 [NC,L,QSA]
RewriteRule ^freebie/(.*)$ freebie.php?stitle=$1 [NC,L,QSA]
RewriteRule ^legal/?$ legal.php [NC,L,QSA]

我遇到问题的网页是:

www.example.com/articles/
www.example.com/freebies/
www.example.com/deals/

我试图根据$ _GET ['section']在这些页面上设置一个值,但$ _GET数组为空。

根目录中还有名为“文章”,“免费赠品”和“交易”的文件夹(我不知道这是否会对我的问题产生任何影响)。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

没关系,我一发布这个问题就注意到了我的错误,忘记将index2从我的测试文件改为索引到实时文件。

我的代码没问题,傻错^ _ ^。