Php 301重定向工作,重写用于重定向不工作的规则

Php 301重定向工作,重写用于重定向不工作的规则,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,下面是我们的.htaccess文件。所有301重定向都可以正常工作。之后,在文件中,我们用于重定向的中间重写规则都不起作用。store/locations.php的第一条重写规则非常简单,应该可以正常工作 我确实认识到,在这个简单的重写规则之后,所有其他重写规则都包含一个“?”,这可能需要我们做一些其他的事情(例如,跳出“?”)。但是我甚至不能让重写规则在简单的url上工作,所以我想知道我们可能做错了什么 有趣的是,.htaccess文件底部的重写条件和重写规则实际上工作正常(将任何非www u

下面是我们的.htaccess文件。所有301重定向都可以正常工作。之后,在文件中,我们用于重定向的中间重写规则都不起作用。store/locations.php的第一条重写规则非常简单,应该可以正常工作

我确实认识到,在这个简单的重写规则之后,所有其他重写规则都包含一个“?”,这可能需要我们做一些其他的事情(例如,跳出“?”)。但是我甚至不能让重写规则在简单的url上工作,所以我想知道我们可能做错了什么

有趣的是,.htaccess文件底部的重写条件和重写规则实际上工作正常(将任何非www url转换为www url)


您无法在重写规则中匹配查询字符串,您需要在以下条件中使用
%{query\u string}
变量:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^/?$
RewriteRule ^store/locations.php$ http://www.pelleline.com/locations.php [L,R=301]

RewriteCond %{QUERY_STRING} ^a_testoni_shoes-pg1-cid46.html?/?$
RewriteRule ^store/product-list.php$ http://www.pelleline.com/a-testoni-shoes/cid-46-1.html [L,R=301]

RewriteCond %{QUERY_STRING} ^alden_shoes-pg1-cid47.html?/?$
RewriteRule ^store/product-list.php$ http://www.pelleline.com/alden-shoes/cid-47-1.html [L,R=301]

谢谢你的意见。这似乎不起作用。它看起来与我尝试过的其他一些方法非常接近,但不起作用。奇怪的是,.htaccess文件的其他部分,包括最后的重写条件(非www到www)都可以正常工作,但无论我使用什么方法(包括上面的方法)重定向/重写站点的特定URL,它们都被忽略了这实际上工作得很好,非常感谢。我的问题是,在一个子文件夹中有第二个.htaccess文件阻止了这段伟大代码的运行。再次感谢
RewriteEngine on
RewriteCond %{QUERY_STRING} ^/?$
RewriteRule ^store/locations.php$ http://www.pelleline.com/locations.php [L,R=301]

RewriteCond %{QUERY_STRING} ^a_testoni_shoes-pg1-cid46.html?/?$
RewriteRule ^store/product-list.php$ http://www.pelleline.com/a-testoni-shoes/cid-46-1.html [L,R=301]

RewriteCond %{QUERY_STRING} ^alden_shoes-pg1-cid47.html?/?$
RewriteRule ^store/product-list.php$ http://www.pelleline.com/alden-shoes/cid-47-1.html [L,R=301]