当我传递包含空格的值时,我的URL重写不起作用(比如新德里) 查看我的代码
RewriteRule top-indian-cities-states-('d+)/(.*)/ top-indian-cities-states.php?id=$1&top=$2
当第二个参数变为新德里时,它不起作用
mydomain/top-indian-cities-states-1/New-delhi-Hotel
我已将变量作为
$name="New Delhi";
$displayName=trim($name." Hotel");
$urlVal=str_replace(" ","-",$displayName);
<li><a href="top-indian-cities-states-1/<?=$urlVal?> /"><?=$name?> Hotel</a></li>
此外,当我请求第二个参数时,我得到了值 twise即
echo $_REQUEST['id']; Results in `1` it's correct
echo $_REQUEST['top']; Results in `Kerala-Hotel/Kerala-Hotel` is it correct . i need to get the value only one .
有人有想法吗?
请重播
提前致谢
好吧,您在城市名称后指定了一个尾部斜杠,但您的示例中没有它(不允许使用空格)。
2 种解决方案:
-
将尾部斜杠添加到正则表达式:
RewriteRule top-indian-cities-states-('d+)/(.*)/? top-indian-cities-states.php?id=$1&top=$2
-
将尾部斜杠添加到变量
$urlVal=str_replace(" ","-",$displayName); $urlVal=. "/";
并将斜杠放在 HTML 中。
像这样尝试重写规则
RewriteRule top-indian-cities-states-('d+)/(.*)$ top-indian-cities-states.php?id=$1&top=$2
<li><a href="top-indian-cities-states-1/<?=$urlVal?> /"
还要删除上面行中双引号前的/。给它作为
<li><a href="top-indian-cities-states-1/<?=$urlVal?>"
试试这个:
$urlVal=trim(str_replace(" ","-",$displayName));
<li><a href="top-indian-cities-states-1/<?=$urlVal?>/"><?=$name?> Hotel</a></li>