将斜线转换为波浪号作为Url分隔符


Convert slash to tilde as Url Separator

我有一个问题,我们如何用斜线代替斜线来分隔Url例如,我有一个类似于的URL

第一例

www.domain.com/category/category_id
 then URL shown would be 
www.domain.com/category~category_id

第二种情况

 www.domain.com/category/subcategory/category_id
 then URL shown would be 
 www.domain.com/category/subcategory~category_id

所以,当我们遇到这样的情况时,我们将分离Url,只有最后一段会受到影响。我们如何在Php中做到这一点。我正试图在拉拉维尔做这件事!任何建议都将不胜感激。

感谢

  1. 在你的www根目录中创建.htaccess并将其放入:


    上的重写引擎重写结束%{SCRIPT_FILENAME}-d
    重写结束%{SCRIPT_FILENAME}-f
    重写规则^(.*)$index.php?params=$1[QSA]

  2. 在index.php中,使用此获取params:


    $params=爆炸('/',$_GET['params'])
    $lastTwo=爆炸('~',$params[count($params)-1])
    if(count($lastTwo)==2){
    $params[count($params)-1]=$lastTwo[0]
    $params[]=$lastTwo[1]
    }…

现在,您可以将所有参数作为数组进行处理。

您可以在根目录中使用此规则。htaccess:

RewriteEngine On
RewriteCond %{THE_REQUEST} 's/([^~]+?)/([^/~'s]+)/? [NC]
RewriteRule ^(.+?)/([^/~]+)/?$ /$1~$2 [R=301,L,NE]
RewriteRule ^([^~]+)(.+)$ /$1/$2 [R=301,L,NE]