Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache mod_重写规则无法正常工作_Apache_Url_Mod Rewrite - Fatal编程技术网

Apache 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

我在其他几个地方使用过这个特殊的mod_重写规则,它的工作原理与预期的一样完美。然而,它在这里不起作用,就我的一生而言,我不明白为什么

设置如下所示:

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]