2013-04-26 43 views
1

我一直在寻找一些东西,但不幸的是,当涉及到这个问题时,我仍然处于亏损状态,并且与.htaccess的老手很远,我一直无法工作解决我的问题。将特定参数重定向到子文件夹

该平台是Wordpress,但由于我相信这个问题可以用.htaccess解决,我认为这不应该有很大的不同。

我需要重写搜索时,他们是一个更友好的URL结构,不幸的是,只是改变?s =测试到/搜索/测试不会削减它。我需要从搜索中拉出3个参数并将它们用作子文件夹,然后将其余参数附加到搜索结尾。这里有一个例子:

旧的URL:

http://www.XXXXX.com/?s=Ford&z=59105&ci=Billings&st=MT&r=450&m=15000&pmin=1000&pmax=30000&status=Used&submit=Refine 

新的URL:

http://www.XXXXX.com/search/Used/MT/Billings/?s=Ford&z=59105&r=450&m=15000&pmin=1000&pmax=30000&submit=Refine 

正如你所看到的,参数 “状态”, “ST” 和 “词” 分别被插入到后面的所有其余参数的URL。

所以基本上,我需要将旧的url重定向到新的url,但是新的url会显示对应于旧url的页面。

我已经得到了以下迄今为止写的:(编辑:*更改{QUERY_STRING}为[L,QSA]由爆炸丸*建议)

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?search/([^/]+)/([^/]+)/([^/]+)/?s=([^/]+)?$ /index.php?s=$4&ci=$3&st=$2&status=$1 [L,QSA] 

而且这样的作品;您可以输入新的网址并显示该页面,但似乎“已用”目录没有正确发布数据。这也只是谜题的一半,因为它不会将旧网址重定向到新网址。它很简单,允许新的URL存在。

非常感谢您的帮助!这一次让我难倒了好几天。现在。

+1

代替使用'%{QUERY_STRING}'当您将'[L]'更改为'[L,QSA]' – 2013-04-26 16:59:36

+0

完成!感谢提示,爆炸! – DEUTSCHWULF 2013-04-26 17:03:54

回答

1

你可以在根目录中的一个.htaccess文件试试这个:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} s=([^&]+)&z=([^&]+)&r=([^&]+)&m=([^&]+)&pmin=([^&]+)&pmax=([^&]+)&submit=([^&]+) [NC] 
RewriteCond %{REQUEST_URI} !index\.php [NC] 
RewriteRule ^search/([^/]+)/([^/]+)/([^/]+) /index.php?s=%1&z=%2&ci=$3&st=$2&r=%3&m=%4&pmin=%5&pmax=%6&status=$1&submit=%7 [L,NC] 

地图默默:

http://www.XXXXX.com/search/Used/MT/Billings/?s=Ford&z=59105&r=450&m=15000&pmin=1000&pmax=30000&submit=Refine 

http://www.XXXXX.com/index.php?s=Ford&z=59105&ci=Billings&st=MT&r=450&m=15000&pmin=1000&pmax=30000&status=Used&submit=Refine 

对于永久重定向,更换[L, NC]与[R = 301,L,NC]

+0

该映射完美无缺!虽然我注意到,当我输入新的URL时,它会重定向到原始搜索,而不是保留漂亮的URL。另外,我能做些什么来强制所有搜索重定向/符合新的URL结构吗? – DEUTSCHWULF 2013-04-26 18:28:16

+0

发布后几分钟我修改了我的答案,请确保您有最新版本。所请求的URL总是显示在浏览器的栏中。如果您希望重定向的URL显示,请按照答案中的指示使用永久重定向。假设所有字符串都是动态的,所以任何具有类似URL结构的请求都应该有效。 Fah; – 2013-04-26 18:32:01

+0

看起来不错,Faa;该映射现在运行良好,并且URL保持其需要的方式。你不会碰巧有建议将所有访问旧网址结构的流量都发送到新的网址结构中吗?我想确保在使用网站搜索时,新的网址结构始终保持不变。 – DEUTSCHWULF 2013-04-26 19:13:04

相关问题