url重写动态页面

时间:2012-04-23 06:53:03

标签: php html url-rewriting

我在mu php网站上实现了URL重写

在这里,我需要将我的链接显示为

mydomain.com/komet-india/Best-Indian-Hill-Stations-1/Delhis-Hotel

此处Best-Indian-Hill-Stations,1,Delhis-Hotel是动态值 我也会举一个例子

mydomain.com/komet-india/Popular Indian Pilgrimages-2/new-Hotel

这里

Popular Indian Pilgrimages,2,new-Hotel  

是动态值。

第一个参数是类别,第二个是id,第三个是酒店的名称

我已经写了以下网址来查看我的代码

Rewrite Rule (\d+)-(\d+)/(.*)/? hotel-detail.php?title=$1&id=$2&top=$3&hotel=4 [nc]

但结果是找不到页面

有人给我一个解决方案吗?

3 个答案:

答案 0 :(得分:1)

我几乎有同样的问题。我得到了完成这项工作的最佳方法。 .htaccess文件

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

url解析代码

$url = isset($_GET['url']) ? $_GET['url'] : null;
    $url = str_replace(".html", "", $url);
    $url = str_replace("-", "_", $url);
        //you could use rtrim(); but I had some trouble when the url had the "t" as the ending character.
    //$url = rtrim($url, '.html');
    $url = explode('/', $url);

通过这样做,您将获得$ url数组中的URL。

说mydomain.com/komet-india/Best-Indian-Hill-Stations-1/Delhis-Hotel

$url[0] = komet_india
$url[1] = Best_Indian_Hill_Stations_1
$url[2] = Delhis_Hotel

答案 1 :(得分:1)

尝试像这样的重写规则......

RewriteRule komet-india/(.*)-(\d+)/(.*)$ hotel-detail.php?title=$1&id=$2&top=$3&hotel=4 [NC,L]

答案 2 :(得分:0)

尝试将重写规则更改为下面的规则。 Tha应该crea

Rewrite Rule (.*)-(\d+)/(.*)/? hotel-detail.php?title=$1&id=$2&top=$3&hotel=4 [nc]

我也不确定你是否需要那里的komet-india。但我不知道你的localhost设置。