2014-03-19 65 views
0

所以我遇到了一个问题,我相信我有正确的但它只是在我这里工作。不重定向为干净的URL

所以,很简单我想我目前的网址是: tremorelights.com/chandelier-c-18.html?page=2 & osCsid = vtemi4nqlioftbteam6nap0s77

看起来像这样网址: tremorelights.com/吊灯/ 2/

所以我想重定向到干净的URL,这就是我现在拥有的。

RewriteEngine On 
RewriteBase/
RewriteRule ^chandelier-c-18.html?page=$1 chandeliers/([0-9]+) [QSA,L,R=301] 

然而,这是行不通的。当我手动输入干净的URL时,它不会给我一个404错误,但它不会将我带到任何其他页面。

+1

我觉得你有它倒退,难道你不想'tremorelights.com /吊灯/ 2 /'重定向到'tremorelights。 COM /吊灯-C-18.html?页= 2&osCsid = vtemi4nqlioftbteam6nap0s77'? –

回答

0

您可以在重写规则匹配对查询字符串,你要匹配的是这里的%{THE_REQUEST}变量。

尝试:

RewriteEngine On 
RewriteBase/
RewriteCond %{THE_REQUEST} \ /+chandelier-c-18.html\?page=([0-9]+) 
RewriteRule^chandeliers/%1? [QSA,L,R=301] 

那么也许:

RewriteRule ^chandeliers/([0-9]+) chandelier-c-18.html?page=$1 [L] 
+0

嘿乔恩感谢重定向工程的帮助。现在唯一的问题是它继续处理这些干净的URL后这些变量:'tremorelighting.com/chandeliers/2?cPath=18&page=2&osCsid = 25msjgqd9qnss50e039m9k3j96'正如你所看到的干净的URL是在位,我是重定向到它,但丑陋的变量仍然存在。 – Mike

+0

@Mike抱歉,在那里忘了'?'。见编辑 –

+0

谢谢你的帮助乔恩。你一直在帮助很大。 – Mike

0

您的规则改成这样:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule ^chandeliers/([0-9]+)/?$ chandelier-c-18.html?page=$1&osCsid=vtemi4nqlioftbteam6nap0s77 [QSA,L,NC]