Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在尝试使用.htaccess重写进行分页_Php_.htaccess - Fatal编程技术网

Php 正在尝试使用.htaccess重写进行分页

Php 正在尝试使用.htaccess重写进行分页,php,.htaccess,Php,.htaccess,因此,我为自己感到非常自豪,因为这是我有史以来第一次真正了解到如何在不寻求帮助的情况下更新.htaccess文件(对我来说是一个新的里程碑) 以下是我补充的内容: RewriteRule albums/(.*)/(.*)/(.*)/ albums.php?language=$1&searchindex=$2&searchparameterdata=$3 将我的链接转换为: www.my domain.com/albums/en/music/披头士/ 但是。。翻页来了,我又被难倒

因此,我为自己感到非常自豪,因为这是我有史以来第一次真正了解到如何在不寻求帮助的情况下更新.htaccess文件(对我来说是一个新的里程碑)

以下是我补充的内容:

RewriteRule albums/(.*)/(.*)/(.*)/ albums.php?language=$1&searchindex=$2&searchparameterdata=$3
将我的链接转换为: www.my domain.com/albums/en/music/披头士/

但是。。翻页来了,我又被难倒了。单击我的下一页,它现在会像这样附加到上面的url

beatles/?language=en&locale=us&page=2&searchindex=music&searchparameter=keywords&searchparameterdata=beatles&
这是我可以在.htaccess中更正的内容吗。。保持我的工作url的格式并且仍然允许分页工作

您可以尝试将该标志添加到您的重写规则中

RewriteRule albums/(.*)/(.*)/(.*)/ albums.php?language=$1&searchindex=$2&searchparameterdata=$3 [QSA]
此外,您可能希望自己检查分页链接。我猜查询字符串实际上是分页href的一部分。如果是这样,那么我想不出任何简单的方法通过mod rewrite删除查询字符串。您需要修改分页链接,以便href仅包含所需的查询字符串参数。在这种情况下,唯一需要的查询字符串参数是
page=2
部分。

您可以尝试将该标志添加到重写规则中

RewriteRule albums/(.*)/(.*)/(.*)/ albums.php?language=$1&searchindex=$2&searchparameterdata=$3 [QSA]

此外,您可能希望自己检查分页链接。我猜查询字符串实际上是分页href的一部分。如果是这样,那么我想不出任何简单的方法通过mod rewrite删除查询字符串。您需要修改分页链接,以便href仅包含所需的查询字符串参数。在这种情况下,您需要的唯一查询字符串参数是
page=2
部分。

我认为这对您自己来说太难了;为什么不在一个参数中发送所有参数,让php决定如何处理它呢?试试这个:

RewriteRule albums/(.*) albums.php?parameters=$1 [L]
然后在php中:

parse_str($_GET['parameters], $parameters);
do_stuff($parameters['searchindex'], $parameters['page'], ...);
轻松愉快:)


查看关于
parse_str()
do_stuff()
显然是发明出来的;)

我认为你让自己太难了;为什么不在一个参数中发送所有参数,让php决定如何处理它呢?试试这个:

RewriteRule albums/(.*) albums.php?parameters=$1 [L]
然后在php中:

parse_str($_GET['parameters], $parameters);
do_stuff($parameters['searchindex'], $parameters['page'], ...);
轻松愉快:)


查看关于
parse_str()
do_stuff()
显然是发明出来的;)

哦,哇。。好主意!非常感谢!这就是答案!哦,哇。。好主意!非常感谢!这就是答案!