Php 使用干净的URL处理$\u GET请求
我有一个明确的基于URL的系统,所以类别将显示如下Php 使用干净的URL处理$\u GET请求,php,.htaccess,clean-urls,Php,.htaccess,Clean Urls,我有一个明确的基于URL的系统,所以类别将显示如下 http://www.mysite.com/category/23/cat-name 在分类页面中,我有一些排序和页面选项,如按最新者排序和较低的价格。还有,我有一个网页导航系统 问题是当请求发生在页面内部时,$\u GET[]不会显示我需要的变量。但是,它在URL中显示为 http://www.mysite.com/category/23/cat-name?page=3 $\u GET变量仅显示类别的id,在我们的示例中,该id现在为=2
http://www.mysite.com/category/23/cat-name
在分类页面中,我有一些排序和页面选项,如按最新者排序和较低的价格。还有,我有一个网页导航系统
问题是当请求发生在页面内部时,$\u GET[]
不会显示我需要的变量。但是,它在URL中显示为
http://www.mysite.com/category/23/cat-name?page=3
$\u GET
变量仅显示类别的id,在我们的示例中,该id现在为=23
,忽略了url中的页码
.htaccess
内容
RewriteEngine On
RewriteRule ^category/([0-9]+)/[a-z][-a-z0-9]*$ cat.php?id=$1
您需要在规则末尾包含该标志。这会将任何现有查询字符串附加到您正在规则本身中构造的查询字符串:
RewriteEngine On
RewriteRule ^category/([0-9]+)/[a-z][-a-z0-9]*$ cat.php?id=$1 [L,QSA]
因此,重写后的URI应该是:/cat.php?id=23&page=3
您需要在规则末尾包含该标志。这会将任何现有查询字符串附加到您正在规则本身中构造的查询字符串:
RewriteEngine On
RewriteRule ^category/([0-9]+)/[a-z][-a-z0-9]*$ cat.php?id=$1 [L,QSA]
因此,重写后的URI应该是:/cat.php?id=23&page=3
在重写规则的末尾添加QSA(查询字符串追加)
RewriteEngine On
RewriteRule ^category/([0-9]+)/[a-z][-a-z0-9]*$ cat.php?id=$1 [L,QSA]
当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并用新生成的查询字符串替换它。使用[QSA]标志会导致组合查询字符串
使用[QSA]标志,对/pages/123?one=two的请求将映射到/page.php?page=123&one=two。如果没有[QSA]标志,相同的请求将被映射到/page.php?page=123——也就是说,现有的查询字符串将被丢弃 在重写规则末尾添加QSA(查询字符串追加)
RewriteEngine On
RewriteRule ^category/([0-9]+)/[a-z][-a-z0-9]*$ cat.php?id=$1 [L,QSA]
当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并用新生成的查询字符串替换它。使用[QSA]标志会导致组合查询字符串
使用[QSA]标志,对/pages/123?one=two的请求将映射到/page.php?page=123&one=two。如果没有[QSA]标志,相同的请求将被映射到/page.php?page=123——也就是说,现有的查询字符串将被丢弃
page=3
是否已修复?或者应该是id=23
?page=3
是否已修复?或者应该是id=23
?