php - $_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 中的某个地方存在我没有看到的冲突。
解决方案
推荐阅读
- java - java中嵌套的f语句没有返回正确的迭代值?
- c# - net5.0 中的信号量是否支持全局信号量,安全性如何工作?
- python - 该函数被调用两次,并且文本在电报机器人中显示不正确
- node.js - AWS Lambda 二进制响应无法正常工作
- arrays - 试图向后打印一个单词,但我不断收到 [segmentation fault [core dumped]] 等等
- django - 在 Django 中使用 Scrapy 选择 HTML 中的所有脚本标签
- python - 运行一个在 jupyter 单元格中接受参数的 python 脚本
- python - 将文件从服务器复制到同一本地网络中的客户端
- python - OOP 类设计建议。一个类可以实例化并使用从同一个父类继承的另一个类吗?
- windows - 如何将 Cinebench CMD 日志输出到文件?