.htaccess RewriteRule保存GET URL参数

Enk*_*kay 30 php parameters .htaccess rewrite

我有问题在htaccess url重写后保持url的参数工作.

我的htaccess重写如下:

 RewriteEngine on
 RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2
Run Code Online (Sandbox Code Playgroud)

意思是:

domain.com/index.php?lang=en&page=product 显示为 domain.com/en/product

出于某种原因,当我?model=AB123&color=something在我的URL末尾添加一个时,我无法在php中检索这些参数$_GET['model'],$_GET['color']即使它们出现在显示的URL中.

为什么不传递变量?

Sim*_*mon 69

您需要附加[QSA](查询字符串追加)标记.尝试

RewriteEngine on
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA]
Run Code Online (Sandbox Code Playgroud)

请参见http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

  • 非常感谢你.那很有效.在我尝试的一些事情之后解决方案是多么简单有趣... (4认同)
  • 即使带有 QSA 标签,它似乎对我的也不起作用。显示正确的页面,但由于 $_GET 似乎无法获取,因此会引发大量错误。我正在使用 `RewriteRule ^details/([^/])/?$details?Pin=$1 [QSA]` (2认同)