Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于动态URL的htaccess_Php_.htaccess - Fatal编程技术网

Php 基于动态URL的htaccess

Php 基于动态URL的htaccess,php,.htaccess,Php,.htaccess,我坚持在一个网站的网址的情况。这里我用一个电子商务网站来描述它 产品类别 public\u html是根目录。我想创建这样的URL--> 案例1->如果用户希望查看子类别下的所有产品(例如女式服装)。然后我希望URL是www.website.com/womens clothing/(这里可能有一些参数) 案例2->如果用户希望查看特定子类别下的所有产品(例如女式上衣,该子类别位于女式服装子类别下),则我希望URL为www.website.com/womens clothing/womens to

我坚持在一个网站的网址的情况。这里我用一个电子商务网站来描述它

产品类别

public\u html
是根目录。我想创建这样的URL-->

案例1->如果用户希望查看子类别下的所有产品(例如
女式服装
)。然后我希望URL是
www.website.com/womens clothing/(这里可能有一些参数)

案例2->如果用户希望查看特定子类别下的所有产品(例如
女式上衣
,该子类别位于
女式服装
子类别下),则我希望URL为
www.website.com/womens clothing/womens top/(此处可能有一些参数)


因此,我的问题是,我是否需要为父类别下的每个
子类别和
子类别创建一个目录,或者可以使用
HTACCESS
在任何一个页面中创建目录,而不创建目录.....

通过创建目录来实现这一点(虽然有效)这几乎是愚蠢的,因为这将耗费大量时间,难以管理

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

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ index.php?page=$1 [NC,L] 
这段代码是一个很好的例子,说明了如何将
.htaccess
文件用于此目的

然后,在
index.php
文件中,您可以通过
$\u get['page]



所以,在页面上说你的名字<代码>www.website.com/女式服装/女式上衣/

$\u GET['page]
将返回
女式服装/女式上衣/



然后,只需
$url=explode('/',$\u GET['page])

$url[0]
=
女式服装

$url[1]
=
女式上衣

这样做将为您提供参数

另外,使用
if(isset($url[NUM]){}
,这样就不会出现超出范围索引的错误

无论如何,这就是它的基础


解释 所有这一切真正做的就是从url中隐藏
index.php
,以及作为get请求提供url中的每个'directory'


这被称为
URL重写
,涉及到apaches
mod_rewrite
功能。

通过创建目录(工作时)来实现这一点几乎是愚蠢的,因为这将耗费大量时间,难以管理

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

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ index.php?page=$1 [NC,L] 
这段代码是一个很好的例子,说明了如何将
.htaccess
文件用于此目的

然后,在
index.php
文件中,您可以通过
$\u get['page]



所以,在页面上说你的名字<代码>www.website.com/女式服装/女式上衣/

$\u GET['page]
将返回
女式服装/女式上衣/



然后,只需
$url=explode('/',$\u GET['page])

$url[0]
=
女式服装

$url[1]
=
女式上衣

这样做将为您提供参数

另外,使用
if(isset($url[NUM]){}
,这样就不会出现超出范围索引的错误

无论如何,这就是它的基础


解释 所有这一切真正做的就是从url中隐藏
index.php
,以及作为get请求提供url中的每个'directory'


这被称为
URL重写
,涉及apaches
mod_rewrite
功能。

不,一点也不!根据URL创建目录既不是动态的,也不适用于站点增长。很快你的网站维护就变得势不可挡了

您的问题的解决方案是使用URL Rewrite(Apache web服务器的mod_Rewrite)以及.htaccess&创建一种URL别名

请咨询以下问题:


不,一点也不!根据URL创建目录既不是动态的,也不适用于站点增长。很快你的网站维护就变得势不可挡了

您的问题的解决方案是使用URL Rewrite(Apache web服务器的mod_Rewrite)以及.htaccess&创建一种URL别名

请咨询以下问题:


谢谢,这也帮了我的忙,这也帮了我的忙