Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将斜杠转换为平铺作为Url分隔符_Php_.htaccess_Url_Url Rewriting_Laravel - Fatal编程技术网

Php 将斜杠转换为平铺作为Url分隔符

Php 将斜杠转换为平铺作为Url分隔符,php,.htaccess,url,url-rewriting,laravel,Php,.htaccess,Url,Url Rewriting,Laravel,我有一个问题,我们如何用斜杠代替斜杠来分隔Url 例如,我有一个URL,如: 第一例 www.domain.com/category/category_id then URL shown would be www.domain.com/category~category_id 第2例 www.domain.com/category/subcategory/category_id then URL shown would be www.domain.com/category/subc

我有一个问题,我们如何用斜杠代替斜杠来分隔Url 例如,我有一个URL,如:

第一例

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

 www.domain.com/category/subcategory/category_id
 then URL shown would be 
 www.domain.com/category/subcategory~category_id
所以,当我们遇到这样的情况时,我们会分离Url,只有最后一段会受到影响。我们如何在Php中做到这一点。我想在拉威尔做这件事!如有任何建议,将不胜感激

谢谢

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

    重新启动发动机
    重写cond%{SCRIPT_FILENAME}-d
    重写cond%{SCRIPT_FILENAME}-f
    重写规则^(.*)$index.php?参数=$1[QSA]

  • 在index.php中,使用以下命令获取参数:


    $params=explode('/',$_GET['params'])
    $lastwo=分解(“~”,$params[count($params)-1])
    如果(count($lastwo)==2{
    $params[count($params)-1]=$lastwoo[0];
    $params[]=$lastwoo[1];
    }


  • 现在您将所有参数都设置为数组,并可以对其进行处理。

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

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

    你为什么要这么做?!?!从事客户项目,这是他的需要@CodeBirdYou已经改变了我的问题。我不想找情人。我需要将url结构从斜杠改为平铺,因为我不明白你想要什么。是关于生成url,还是想从someting.com/one/two/three重定向到something.com/one/two~three?我想以something.com/one/two~three的形式显示url,而不是something.com/one/two/three。公开地说,这个url是他们的一种展示方式,我的工作平台将以斜杠获得这些url,并仅在平铺上展示它们?因为使用此url将被更改,但我的工作平台(即laravel)开始无法识别url。因此404被大量使用。你有什么特别的原因想让tilde替换最后一个斜杠吗?我不知道这背后的原因,我也不知道Laravel有没有足够的能力告诉你这方面的任何事情。我建议你一个额外的规则,将重写回没有斜杠内部。是的,我可以看到!!我必须对此进行研究!!无论如何,谢谢你的帮助!