Bu GET params sırasına bağlıdır ancak sizin belirli bir örnek için çalışır, Param1 sonra herhangi bir GET argümanlarımdan korur ve aynı zamanda POST argümanlarımdan koruduğunu, bu kırılgan bir çözümün tür:
RewriteCond %{QUERY_STRING} param1=value1(&.*)*$
RewriteRule ^/index\.php$ /index.php?param1=newvalue1%1 [L]
Ben sadece print_r($_GET)
ve print_r($_POST)
ve ben şu bakın sonrası args ile komut satırından kıvırmak kullanarak yapar küçük bir test php sayfası var:
$ curl --data "post1=postval1&post2=postval2" "http://www.example.com/index.php?param1=value1¶m2=value2¶m3=value3"
_GET
Array
(
[param1] => newvalue1
[param2] => value2
[param3] => value3
)
_POST
Array
(
[post1] => postval1
[post2] => postval2
)
Eğer daha esnek olması için yeniden yazma şartı aranıyor (yani, yalnızca arg o olsun olabilir, herhangi bir pozisyonda olabilir param1 olabilir bamya gibi yaptığımız bazı koşullu desen eklemek olabilir ama bunu işlemek için gereken tam olarak ne şartlar bilmek iyi olurdu vs)
edit for new requirements below
Aşağıdaki yerde sorgu dize veya url (ama post'ed tuşları / değerleri) in "newvalue1" ile "değer1'i" değiştirilmesi için çalışmak gibi görünüyor:
RewriteCond %{QUERY_STRING} ^(.*)value1(.*)$
RewriteRule ^(.*)$ $1?%1newvalue1%2 [L]
RewriteRule ^(.*)value1(.*)$ $1newvalue1$2 [L]
N% $ N RewriteRule kendisinden değerleri ile ikame için kullanılan en RewriteCond değerleri yerine kullanılmaktadır. sadece iki RewriteRules, sorgu dizesi işlemek için ilişkili RewriteCond ile bunlardan biri kullanılır.