Apache重写&x2B;马根托·唐';I don’我没有按预期工作

Apache重写&x2B;马根托·唐';I don’我没有按预期工作,apache,.htaccess,magento,Apache,.htaccess,Magento,我需要为我的Magento 1存储实现以下重写规则-如果查询字符串包含param1或param2且URI不是/myfilter/,则删除该字符串 以下是一个例子: www.mystore.com/myfilter/ --> www.mystore.com/myfilter/ www.mystore.com/myfilter/?param1=1 --> www.mystore.com/myfilter/param1=1 www.mystore.com/<something&g

我需要为我的Magento 1存储实现以下重写规则-如果查询字符串包含
param1
param2
且URI不是
/myfilter/
,则删除该字符串

以下是一个例子:

www.mystore.com/myfilter/ --> www.mystore.com/myfilter/

www.mystore.com/myfilter/?param1=1 --> www.mystore.com/myfilter/param1=1

www.mystore.com/<something>/?param1=1 --> www.mystore.com/<something>/

www.mystore.com/<something>/?param2=2 --> www.mystore.com/<something>/
在标准Magento重定向之前:

############################################
## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## rewrite everything else to index.php

    RewriteRule .* index.php [L]
但它的工作方式是错误的。 这些URL可以工作:

www.mystore.com/myfilter/ --> www.mystore.com/myfilter/

www.mystore.com/myfilter/?param3=1 --> www.mystore.com/myfilter/?param3=1

www.mystore.com/<something>/?param1=1 --> www.mystore.com/<something>/

www.mystore.com/<something>/?param2=2 --> www.mystore.com/<something>/

我错过了什么吗?

这些规则是我需要的技巧:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(index.php/)?myfilter/ [NC]
RewriteCond %{QUERY_STRING} param1 [OR]
RewriteCond %{QUERY_STRING} param2
RewriteRule (.*) /$1? [R=301,L]

RewriteCond %{REQUEST_URI} ^/myfilter/ [NC]
RewriteRule (.*) index.php/myfilter/ [L]

试着把你的问题也贴在服务器故障上。@M.Gara这不是服务器故障的主题。看看服务器故障。这不是服务器故障,我可以在不同的服务器上看到相同的行为,包括我的本地apache。这与Magento的重写和apache都有关。@theProgrammer101,我不完全确定你认为什么是不完整的/无法验证的?解决了问题,并用解决方案更新了问题:)
www.mystore.com/myfilter/?param1=1 --> www.mystore.com/index.php
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(index.php/)?myfilter/ [NC]
RewriteCond %{QUERY_STRING} param1 [OR]
RewriteCond %{QUERY_STRING} param2
RewriteRule (.*) /$1? [R=301,L]

RewriteCond %{REQUEST_URI} ^/myfilter/ [NC]
RewriteRule (.*) index.php/myfilter/ [L]