我坚持网站URL的情况。我在这里使用电子商务网站来描述它。
产品类别
Women ------> womens-clothing (sub-category)
---------> womens-top (child)
---------> womens-dress (child)
public_html
是根目录。我想创建这样的网址 - >
案例1 - > 如果用户想要查看子类别下的所有产品(例如 Womens-clothing
)。然后我希望网址为www.website.com/womens-clothing/(may be some parameters here)
。
案例2 - > 如果用户想要查看特定孩子下的所有产品(例如{em> womens-top
,则womens-clothing
-category)然后我希望URL为www.website.com/womens-clothing/womens-tops/(may be some parameters here)
。
所以我的问题是我是否需要为其父类别下的每个sub-categories
和child-categories
创建一个目录,或者可以在任何单个页面中使用HTACCESS
创建目录而无需创建目录。 ??
答案 0 :(得分:0)
通过创建目录(虽然有效)这样做几乎是愚蠢的,因为它会耗费大量时间并且难以管理。
是的! .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])) {}
,这样就不会出现超出范围索引的错误。
无论如何都是它的基础。
所有这一切实际上都是从网址隐藏index.php
,并将网址中的每个 '目录' 作为get请求提供。< / p>
这称为URL Rewriting
,涉及apaches mod_rewrite
函数。
答案 1 :(得分:0)
不,一点也不!每个URL创建一个目录既不是动态的,也不适用于您的站点增长时。很快你的网站维护就会变得无法控制。
解决您的问题的方法是使用 URL重写(Apache Web服务器的mod_rewrite)以及.htaccess&amp;创建有点 URL别名。
请在此处查看以下问题:
How do I create a people-friendly URL using an alias and ID from database?