我在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]
但结果是找不到页面
有人给我一个解决方案吗?
答案 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设置。