0

当我传递包含空格的值(比如新德里)时,我的 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 .

有人有想法吗?

请重播

提前致谢

4

3 回答 3

0

试试这样的重写规则

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?>"
于 2012-04-21T09:45:57.203 回答
0

好吧,您在城市名称后指定了一个斜杠,但您的示例中没有它(不允许使用空格)。

2个解决方案:

  1. 将尾部斜杠添加到正则表达式:

    RewriteRule top-indian-cities-states-(\d+)/(.*)/? top-indian-cities-states.php?id=$1&top=$2
    
  2. 将尾部斜杠添加到变量

    $urlVal=str_replace(" ","-",$displayName);
    $urlVal=. "/";
    

    并在您的 HTML 中删除斜杠。

于 2012-04-21T06:21:00.100 回答
0

尝试这个:

$urlVal=trim(str_replace(" ","-",$displayName));

<li><a href="top-indian-cities-states-1/<?=$urlVal?>/"><?=$name?> Hotel</a></li>
于 2012-04-21T06:23:09.743 回答