【问题标题】:.htaccess Rewrite rules causing empty $_GET.htaccess 重写规则导致空 $_GET
【发布时间】:2016-09-29 06:26:42
【问题描述】:

我有一个问题,在我的一些干净的 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 数组为空。

在根目录中还有名为“articles”、“freebies”和“deals”的文件夹(我不知道这是否对我的问题有任何影响)。

我做错了什么?

【问题讨论】:

    标签: php .htaccess url-rewriting get


    【解决方案1】:

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

    我的代码没有问题,愚蠢的错误^_^。

    【讨论】:

    • 考虑设置一个本地开发环境,可能使用名为vagrant的工具。
    猜你喜欢
    • 2017-08-16
    • 2019-09-16
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多