Apache mod_重写规则无法正常工作
我在其他几个地方使用过这个特殊的mod_重写规则,它的工作原理与预期的一样完美。然而,它在这里不起作用,就我的一生而言,我不明白为什么 设置如下所示:Apache mod_重写规则无法正常工作,apache,url,mod-rewrite,Apache,Url,Mod Rewrite,我在其他几个地方使用过这个特殊的mod_重写规则,它的工作原理与预期的一样完美。然而,它在这里不起作用,就我的一生而言,我不明白为什么 设置如下所示: www.site.com/villas-in-florida/ .htaccess文件位于上面的目录中,其中包含以下内容: Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-v
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/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida
进入:
但事实并非如此,我现在正把头发扯下来。任何提示都将不胜感激,谢谢 它不会转换:
http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida
进入:
反过来说。i、 e
它将重写(不转换):
进入:
您必须使用类似http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida
在您的h参考中
非http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida
。重写的URL将不会反映在浏览器中。
重写规则中也有一个小错误
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2-$3&location=$4&state=$5 [L]
问题是在位置(即
calabay parc
@anubhava)中使用分隔符连字符-
。我从“名称”中删除了-并尝试不使用它,因此calabay parc变成了calabayparc,然后还尝试了calabay_parc-两个都没有骰子!嗯,在你的目标URL中仍然向我显示&name=calabay parc
。接受,但你在+$:P之前错过了一个决赛,破坏了我的网站。不过我抓到了,非常感谢你的回答。正如您所说,它将“calabay”和“parc”作为两个独立的输入。你是个明星!
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
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2-$3&location=$4&state=$5 [L]