.htaccess类别子类别

时间:2016-02-16 12:40:27

标签: php apache .htaccess mod-rewrite

第一次在这里发帖!

我看到很多关于.htaccess问题的话题,但是它们似乎都不能满足我的需求......让我解释一下

我正在开发一个网站,我的客户在那里销售几种类型的游乐场玩具。 该网站按类别组织。贝娄,一个类别的链接:

http://docs.wdesign.com.br/orimad-novo/produtos/playgrounds 这个页面实际上是categories.php?alias = playgrounds

以下网址适用于"游乐场内的产品"类

http://docs.wdesign.com.br/orimad-novo/produtos/playgrounds/brink-lar-super 这个页面实际上是produtos-detalhe.php?alias = playgrounds& produto = brink-lar-super

我使用htaccess制作了上面的网址,但是我的客户希望我删除“" produtos"在这两个网址中,但我似乎无法将其用于我的htaccess文件...毕竟我并不是都熟悉它...我的htaccess在下面

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^/?$ index.php [NC,L]
RewriteRule ^empresa/?$ empresa.php [NC,L]
RewriteRule ^orcamento/?$ orcamento.php [NC,L]
RewriteRule ^orcamento/send/?$ contato-send.php [NC,L]
RewriteRule ^produtos/?$ produtos.php [NC,L]
RewriteRule ^produtos/(.*)/(.*)$ produtos-detalhe.php?alias=$1&produto=$2 [NC,L]
RewriteRule ^produtos/(.+)$ categorias.php?alias=$1 [NC,L]
RewriteRule ^contato/?$ contato.php [NC,L]
RewriteRule ^contato/send?$ contato-send.php [NC,L]
RewriteRule ^localizacao/?$ localizacao.php [NC,L]

随意浏览网站...希望你们能帮助我=) 提前谢谢!!!!

1 个答案:

答案 0 :(得分:0)

好吧,我在这个链接中找到了一个对我有用的解决方案:How to allow three optional parameters in the URL by .htaccess?

我删除了.htaccess文件的内容并使用了bt @tttony提供的示例,如下所示:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

然后使用他的PHP代码建议,我在index.php文件上做了一些工作。

if (isset($_SERVER['REQUEST_URI'])){

    $params = explode("/", ltrim($_SERVER['REQUEST_URI'], "/"));
    @$termo1 = $params[1];
    @$termo2 = $params[2];
    $array_exists = array('empresa','produtos','orcamento','contato','localizacao');
    if(!isset($termo1) || $termo1 == "" && !isset($termo2)) {
        include "home.php";
    } elseif(in_array($termo1,$array_exists)){
        include $termo1 . ".php";
    } else {
        if(isset($termo1) && !isset($termo2)){
            include "categorias.php";
        }
        if(isset($termo1) && isset($termo2) && $termo2 == ""){
            include "categorias.php";
        }
        if(isset($termo1) && isset($termo2) && !$termo2 == ""){
            include "produtos-detalhe.php";
        }
    }    
}

还对文件Categias.php和produtos-detalhe.php进行了一些重写,因为它们从$ _GET变量获取值,现在它们从$ termo1和$ termo2获得相同的值。

就是这样......可能不是那么精致,但它正在发挥作用。 也许有一天,很快,我会学到一个更好的解决方案。 这就是生活,我们总是在学习=)

可视化链接:http://docs.wdesign.com.br/orimad-novo