mod_rewrite规则不能正常工作

时间:2012-02-08 10:17:41

标签: apache url 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

但事实并非如此,而且我现在正在撕掉我真正的头发。感谢任何和所有提示,谢谢!

1 个答案:

答案 0 :(得分: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

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

此外,重写者还有一个小错误。

Options +FollowSymLinks
Options +Indexes
RewriteEngine On

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