0

当我去:

https://sitedomain/product-name-p-1106.html?ref=facebook&keyw=pagetype0:friends

网址更改为:

https://sitedomain/product-name-p-1106.html?keyw=pagetype0friends&ref=facebook

基本上$ref$keyw变量是相反的。为什么会发生这种情况,我该如何阻止它?

注意:我正在尝试使用一个脚本,该脚本依赖于它们的顺序是 $ref 然后是其他人编写的 $keyw ,我想让它们保持这种顺序而不修改该脚本。

我认为它可能是 .htaccess 文件,但不确定,这是该文件:

RewriteBase / 
RewriteRule ^([a-z0-9/-]+)-p-([0-9]+).html$ product_info.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-c-([0-9_]+).html$ index.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-m-([0-9]+).html$ index.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-pi-([0-9]+).html$ popup_image.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-pr-([0-9]+).html$ product_reviews.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-pri-([0-9]+).html$ product_reviews_info.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-t-([0-9_]+).html$ articles.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-au-([0-9]+).html$ articles.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-a-([0-9]+).html$ article_info.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-i-([0-9]+).html$ information.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-links-([0-9_]+).html$ links.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-n-([0-9]+).html$ newsdesk_info.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-nc-([0-9]+).html$ newsdesk_index.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-nri-([0-9]+).html$ newsdesk_reviews_info.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-nra-([0-9]+).html$ newsdesk_reviews_article.php [NC,L,QSA]
4

3 回答 3

2

它们只是命名参数,不需要任何特定的顺序。如果您依赖任何特定的顺序,那么您在代码中做的事情根本上是错误的。

于 2013-02-14T19:30:22.460 回答
0

我在这里得到的信息是:

永远不要制作或使用依赖于 URL 参数顺序的代码

于 2013-02-14T20:06:48.620 回答
0

$_GET vars 不应该依赖于顺序,除非你在 foreaching $_GET 并且公然忽略索引。此外,MOD_REWRITE 不会在浏览器端对 URI 中的内容进行重新排序,而只会更改服务器端的订单/分配。

正如其他人所说,如果订单非常重要,那么我会将该值作为分隔字符串传递,而不是单独的 $_GET 值。

我知道你“不想”重写这个脚本,但正如其他人所说,想想它可能做错了什么?此外,您真的想要这样的故障点吗?

于 2013-02-14T20:17:39.713 回答