首页 > 解决方案 > $_GET 变量在使用 htaccess 重写 url 后丢失

问题描述

我有一个需要接受 3 个参数的搜索结果页面。我正在使用 _GET 将变量传递给搜索页面,效果很好。我通过 HTACCESS 重写了 URL,并且 URL 正确重写,但页面没有结果,当我尝试回显任何 $_GET 变量时,即使它们在 URL 中显示为正数,它们也会返回为 0。

我尝试将 L 移到选项的末尾并将其简化为 1 个参数,以防我遗漏了一些微小的东西,但我就是想不通。

Options -MultiViews
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # FOR GODADDY
    RewriteRule ^(.*)$ index\.php?/$1 [QSA,L]
    RewriteCond %{THE_REQUEST} /en/show/fun_things_to_do/\?county=([^&\s]+)&city=([^&\s]+)&category=([^&\s]+)&url=([^&\s]+)\s [NC]
RewriteRule ^ /en/show/fun_things_to_do/%1/%2/%3/%4? [R=301,L,NE]

RewriteRule ^en/show/fun_things_to_do/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ en/show/fun_things_to_do/?county=$1&city=$2&category=$3&url=$4 [QSA,L,NC]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /en/admin/auth /en/
</IfModule>
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php56” package as the default “PHP” programming language.
<IfModule mime_module>
  AddType application/x-httpd-ea-php56 .php .php5 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

我期待 $_GET 变量仍然可以通过重写来工作,但我认为我在 htaccess 中的某个地方存在我没有看到的冲突。

标签: php.htaccess

解决方案


推荐阅读