【问题标题】:Dynamic URL based htaccess基于动态 URL 的 htaccess
【发布时间】:2016-12-04 07:38:35
【问题描述】:

我坚持使用网站 URL。这里我用一个电子商务网站来描述它。

产品类别

Women ------> womens-clothing (sub-category)
                     ---------> womens-top (child)
                     ---------> womens-dress (child)

public_html 是根目录。我想创建这样的 URL -->

案例 1 -> 如果用户想要查看子类别下的所有产品(比如 Womens-clothing)。然后我希望 URL 为www.website.com/womens-clothing/(may be some parameters here)。

案例 2 -> 如果用户想要查看特定子项下的所有产品(例如 womens-top,它在 womens-clothing 子类别下),那么我希望 URL 为 www.website.com/womens-clothing/womens-tops/(may be some parameters here)。

所以我的问题是我是否需要在其父类别下为每个sub-categories 和child-categories 创建一个目录,或者可以在任何单个页面中使用HTACCESS 完成而不创建目录..??

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:

    通过创建目录(在工作时)这样做几乎是愚蠢的,因为这将非常耗时且难以管理。

    是的! .htaccess(涉及 apache)是解决您问题的正确选择。

    .htaccess

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ index.php?page=$1 [NC,L] 
    

    这个 sn-p 是一个很好的例子,说明如何将 .htaccess 文件用于此目的。

    然后,在您的index.php 文件中,您可以通过$_GET['page] 获取网址


    所以,在页面上说你的; www.website.com/womens-clothing/womens-tops/

    $_GET['page] 将返回 womens-clothing/womens-tops/。



    然后,只需$url = explode('/', $_GET['page]);

    $url[0] = womens-clothing

    $url[1] = womens-tops

    这样做会给你你的参数。

    另外,请使用if (isset($url[NUM])) {},这样您就不会因为超出范围的索引而出错。

    这就是它的基础。


    说明

    所有这一切实际上都是在 url 中隐藏 index.php,以及将 url 中的每个 'directory' 作为获取请求提供服务。

    这被称为URL Rewriting,涉及到apache的mod_rewrite函数。

    【讨论】:

      【解决方案2】:

      不,一点也不!为每个 URL 创建一个目录既不是动态的,也不适用于您的网站增长。很快,您的网站维护工作就会变得不堪重负。

      解决您的问题的方法是使用 URL 重写(用于 Apache 网络服务器的 mod_rewrite)以及 .htaccess 并创建一种 URL 别名。

      在这里咨询这些问题:

      Generate URL Alias?? in PHP

      How do I create a people-friendly URL using an alias and ID from database?

      【讨论】:

      • 谢谢,这对我也有帮助
      猜你喜欢
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      • 2019-02-04
      • 2015-08-19
      • 1970-01-01
      • 2015-12-10
      相关资源
      最近更新 更多