Php 无法获取查询字符串参数
我面临从查询字符串中获取变量的问题。我已将htaccess重定向用于我的页面 我写了以下规则Php 无法获取查询字符串参数,php,.htaccess,Php,.htaccess,我面临从查询字符串中获取变量的问题。我已将htaccess重定向用于我的页面 我写了以下规则 RewriteEngine On RewriteRule ^([a-zA-Z0-9-/]+).htm$ category.php?uniqname=$1 RewriteRule ^([a-zA-Z0-9-/]+).htm/$ category.php?uniqname=$1 如果我键入的gold plated chain.htm是重定向到的浏览器,则此规则将执行的操作 category.php?uni
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).htm$ category.php?uniqname=$1
RewriteRule ^([a-zA-Z0-9-/]+).htm/$ category.php?uniqname=$1
如果我键入的gold plated chain.htm
是重定向到的浏览器,则此规则将执行的操作
category.php?uniqname=镀金链
现在我想传递一个变量,所以我这样做gold plated chain.htm?page=2
,但我无法在category.php上获取页面变量。我正在正确重定向,但没有该页面变量
提前感谢您应该从regexp中删除^。它表示字符串的开头。您应该从regexp中删除^。它意味着字符串的开始。I/think/您所追求的是应该附加查询字符串的QSA标志(请参阅)
尝试将[QSA]添加到重写规则行的末尾。I/think/您所追求的是QSA标志(请参阅),该标志应附加查询字符串
尝试将[QSA]添加到重写规则行的末尾。您需要添加[QSA]标志,以告知重写引擎合并查询字符串。添加[L]标志并指定一个基准始终是明智的。对“.”字符进行转义也是明智的,因为这会被解释为通配符,您也可以将这两个规则结合起来。因此:
RewriteEngine On
RewriteBase /
RewriteRule ^([\w-/]+)\.htm/?$ category.php?uniqname=$1 [L,QSA]
顺便说一句,
\w
只是a-zA-Z0-9
的简写,您需要添加一个[QSA]标志来告诉重写引擎合并查询字符串。添加[L]标志并指定一个基准始终是明智的。对“.”字符进行转义也是明智的,因为这会被解释为通配符,您也可以将这两个规则结合起来。因此:
RewriteEngine On
RewriteBase /
RewriteRule ^([\w-/]+)\.htm/?$ category.php?uniqname=$1 [L,QSA]
顺便说一句,\w
只是a-zA-Z0-9
的缩写