2012-02-08 30 views
0

我已经在其他几个地方使用这个特殊的mod_rewrite规则,它可以完美地按预期工作。然而,这不是在这里工作,对我来说,我不明白为什么。mod_rewrite规则不工作,因为它应该

的设置如下:

www.site.com/villas-in-florida/ 

.htaccess文件是在上面的目录中,并在它下面的:

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 

RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2&location=$3&state=$4 [L] 

这应该转换成以下几点:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida 

分析:

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida 

但事实并非如此,我现在正在撕裂我的实际头发。任何和所有的提示将不胜感激,谢谢!

+0

问题是使用的分隔符连字符'-'的位置即'calabay-parc' – anubhava 2012-02-08 10:32:09

+0

@anubhava我删除了 - 从“名”,并试图没有它,所以calabayparc成为calabayparc,然后也尝试calabay_parc - 没有骰子! – Trell 2012-02-08 10:43:32

+0

嗯仍然显示'&name = calabay-parc'在我的目标网址。 – anubhava 2012-02-08 10:57:13

回答

1

它不会转换:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida 

分为:

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida 

它的相反。即

它将改写(不转换):

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida 

分为:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida 

您的h refshttp://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida使用像http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida网址。重写的URL不会反映在浏览器中。

此外在重写过程中还存在一个小错误。

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 

RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2-$3&location=$4&state=$5 [L] 
+0

接受,但你错过了最后一个)我之前打破了我的网站+ $:P我虽然抓住了,谢谢你的答案。正如你所说的那样,它将'calabay'和'parc'作为两个独立的输入。你是个明星! – Trell 2012-02-08 10:57:20

+0

@Trell欢迎。 – ThinkingMonkey 2012-02-08 10:59:52

相关问题