所以我为自己感到骄傲,因为有史以来第一次,我实际上想出了如何在不寻求帮助的情况下更新.htaccess文件(对我来说是一个新的里程碑)。
这是我添加的内容:
RewriteRule albums/(.*)/(.*)/(.*)/ albums.php?language=$1&searchindex=$2&searchparameterdata=$3
用于将我的链接翻译为: www.my domain.com/albums/en/music/beatles /
但随后......一路走来,我再次难过了。在点击我的下一页时,它现在会附加到上面的网址,例如..
beatles/?language=en&locale=us&page=2&searchindex=music&searchparameter=keywords&searchparameterdata=beatles&
这是我可以在我的.htaccess中纠正的东西..保持我的工作网址的格式并仍然让分页工作?
答案 0 :(得分:1)
我认为你让自己太难了;为什么不在单个参数中发送所有参数 并让php决定如何处理它?试试这个:
RewriteRule albums/(.*) albums.php?parameters=$1 [L]
然后在你的php中:
parse_str($_GET['parameters], $parameters);
do_stuff($parameters['searchindex'], $parameters['page'], ...);
美好而轻松:)
parse_str()
查看do_stuff()
手册{{1}},{{1}}显然是发明的;)
答案 1 :(得分:0)
您可以尝试将QSA标记添加到RewriteRule。
RewriteRule albums/(.*)/(.*)/(.*)/ albums.php?language=$1&searchindex=$2&searchparameterdata=$3 [QSA]
此外,您可能希望自行检查您的分页链接。我的猜测是查询字符串实际上是分页href的一部分。如果是这种情况,那么我想不出任何通过mod-rewrite删除查询字符串的简单方法。您需要修改分页链接,以便href仅包含所需的查询字符串参数。在这种情况下,您需要的唯一查询字符串参数是page=2
部分。