考虑一个URL如何用post标题slug重写url?
www.example.com/paper-ads-details.php?req=43397&rnd=1308546000
我想改变这个网址为:
www.example.com/jobs-in-chanai.php
其中req=43397
指向标题为chanai 工作后我怎么可能会改写呢?请帮帮我。
考虑一个URL如何用post标题slug重写url?
www.example.com/paper-ads-details.php?req=43397&rnd=1308546000
我想改变这个网址为:
www.example.com/jobs-in-chanai.php
其中req=43397
指向标题为chanai 工作后我怎么可能会改写呢?请帮帮我。
经过艰苦的时间,我得到的方式,现在分享它为其他用户... 假设所需的Url为www.example.com/programmer-Jobs-in-luton
该规则将像...
RewriteRule ^([a-zA-Z0-9-]+)$ job-details.php?slug=$1 [L]
如果你想使用的.htaccess,你需要编写一个脚本来静态生成重写规则,所以.htaccess文件包含像
RewriteRule ^jobs-in-chanai.php /paper-ads-details.php?req=43397&rnds=1308546000 [L]
线在开始处理路由PHP中的请求。根据slug而不是req和rnds参数解析(并过滤)url以查找帖子。根据需要缓存结果。
在你的数据库中,你需要一个'clean url'或'slug'的列以及提到的.htaccess规则。
我使用此功能(不是我的代码):
function makeSlug($string, $force_lowercase = true, $anal = false) {
$strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]",
"}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—",
"—", "–", ",", "<", ".", ">", "/", "?");
$clean = trim(str_replace($strip, "", strip_tags($string)));
$clean = preg_replace('/\s+/', "-", $clean);
$clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ;
return ($force_lowercase) ?
(function_exists('mb_strtolower')) ?
mb_strtolower($clean, 'UTF-8') :
strtolower($clean) :
$clean;
}
我把它保存在一列,这样做:
"SELECT * FROM `content` WHERE `clean_url` = '" . mysql_real_escape_string($cleanURL) . "'";
slu is已经可用。如何使用htaccess在网址中进行调整。 –
'$ str = iconv('UTF-8','ASCII // TRANSLIT',$ str);''''''''可以清除特殊字符,比如元音变音。除此之外,为什么你的makeSlug函数中有html实体? PHP不会将它们解析为字符.. – ThiefMaster
@blackDelta良好的工作伙计 – pregmatch
为什么要在友好的网址中使用'.php'?除此之外,你真的**希望将页面ID包含在友好的url中,所以你不必让代码效率低下(通过slug搜索)。 – ThiefMaster
感染我想隐藏参数,并希望使用像wordpress的slu。。 –
为什么不包括两个,例如 'example.com/43397-jobs-in-chanai' – ThiefMaster