1

我已经在 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]

但它导致未找到页面

有人给我解决方案吗?

4

3 回答 3

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
于 2012-04-23T07:08:30.500 回答
1

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

RewriteRule komet-india/(.*)-(\d+)/(.*)$ hotel-detail.php?title=$1&id=$2&top=$3&hotel=4 [NC,L]
于 2012-04-23T07:08:46.823 回答
0

尝试将您的重写规则更改为以下规则。他应该创造

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

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

于 2012-04-23T07:11:15.927 回答