Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
.htaccess从url中删除特定的get参数_.htaccess - Fatal编程技术网

.htaccess从url中删除特定的get参数

.htaccess从url中删除特定的get参数,.htaccess,.htaccess,你好,我一直在网上搜索这个问题的答案,但我找不到。我希望使用htaccess从url中删除一个特定参数 例如,我有以下URL: www.mysite.com/product.php?product_id=123&session=sdfs98d7fs9f8d7 www.mysite.com/anotherurl.php?session=12312341341&someotherparam=123 我需要它们重定向到: www.mysite.com/product.php?prod

你好,我一直在网上搜索这个问题的答案,但我找不到。我希望使用htaccess从url中删除一个特定参数

例如,我有以下URL:

www.mysite.com/product.php?product_id=123&session=sdfs98d7fs9f8d7
www.mysite.com/anotherurl.php?session=12312341341&someotherparam=123
我需要它们重定向到:

www.mysite.com/product.php?product_id=123
www.mysite.com/anotherurl.php?someotherparam=123
注意,上面的URL只是示例。我需要从任何和所有url中删除会话参数,无论url中有多少个参数或会话位于何处

我想我需要一种方法将url字符串设置为session=blah和session=blah之后的url字符串,然后将这两个部分合并并重定向到新的url


非常感谢您的帮助。

已更新

简而言之,您只需要从查询中删除键值对
session=xx

这里有一个选项:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING}  (.*)?&?session=[^&]+&?(.*)?  [NC]
RewriteCond %{REQUEST_URI} /(.*)
RewriteRule .*  %3?%1%2? [R=301,L]

未经测试,但应能正常工作:

RewriteCond %{QUERY_STRING} product_id=([0-9]+)
RewriteRule .* product.php?product_id=%1
我找到了一个解决方法


谢谢我想我应该提到的是,IRK可能完全不同。公共分母是我需要从任何URL中删除的会话参数。我已经调整了问题,谢谢。是的,URL将是动态的,我有两个例子,我只是需要从任何和所有URLSTNKs faa删除会话参数。如果另一个参数不是product_id或有多个有效参数,则更新后的答案似乎不起作用。我想我正在寻找一种东西,可以在session=blah之前获取任何url,session=blah之后获取任何url,然后重定向到组合部分。@bones再次更新了我的答案。谢谢faa。它不太管用。当我有url:www.mysite.com/catalog/product_info.php?products_id=2894&session=d794705时,它会重定向到www.mysite.com/products_id=2894,我需要它重定向到www.mysite.com/catalog/product_info.php?products_id=2894?脚本名称也是可变的还是现在是
product_info.php
而不是
product.php
# case: leading and trailing parameters
RewriteCond %{QUERY_STRING} ^(.+)&session=[0-9a-z]+&(.+)$ [NC]
RewriteRule (.*) /$1?%1&%2 [R=301,L]

# case: leading-only, trailing-only or no additional parameters
RewriteCond %{QUERY_STRING} ^(.+)&session=[0-9a-z]+$|^osCsid=[0-9a-z]+&?(.*)$ [NC]
RewriteRule (.*) /$1?%1 [R=301,L]