我在其他几个地方使用过这个特定的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 :(得分: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]