[英]Dynamic URL based htaccess
我坚持网站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
子类别下的womens-clothing
),那么我希望URL为www.website.com/womens-clothing/womens-tops/(may be some parameters here)
。
所以我的问题是我是否需要为其父类别下的每个sub-categories
和child-categories
创建一个目录,或者可以在任何单个页面中使用HTACCESS
完成而无需创建目录。
通过创建目录(虽然工作)这样做几乎是愚蠢的,因为它将耗费大量时间并且难以管理。
是! .htaccess
(其中涉及apache)是解决问题的正确选择。
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ index.php?page=$1 [NC,L]
此代码段是.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
,以及作为get请求为url中的每个'目录'提供服务。
这称为URL Rewriting
,涉及apach mod_rewrite
函数。
一点都不! 每个URL创建一个目录既不是动态的,也不适用于您的站点增长时。 很快你的网站维护就会变得无法控制。
您的问题的解决方案是使用URL重写 (Apache Web服务器的mod_rewrite)以及.htaccess并创建有点URL别名 。
在这里咨询这些问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.