Php 将斜杠转换为平铺作为Url分隔符
我有一个问题,我们如何用斜杠代替斜杠来分隔Url 例如,我有一个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
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中做到这一点。我想在拉威尔做这件事!如有任何建议,将不胜感激
谢谢
重写cond%{SCRIPT_FILENAME}-d
重写cond%{SCRIPT_FILENAME}-f
重写规则^(.*)$index.php?参数=$1[QSA]
$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有没有足够的能力告诉你这方面的任何事情。我建议你一个额外的规则,将重写回没有斜杠内部。是的,我可以看到!!我必须对此进行研究!!无论如何,谢谢你的帮助!