繁体   English   中英

基于动态URL的htaccess

[英]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-categorieschild-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别名

在这里咨询这些问题:

生成URL别名?? 用PHP

如何使用数据库中的别名和ID创建对人员友好的URL?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM