Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 使用SO';$u GET的s URL格式_Php_Url_Format - Fatal编程技术网

Php 使用SO';$u GET的s URL格式

Php 使用SO';$u GET的s URL格式,php,url,format,Php,Url,Format,StackOverflow有一个非常整洁的URL格式。它看起来像一个目录结构,但这里的每个问题都不能有一个目录!我的问题是: 如何获取http://www.site.com/sections/tutorials/tutorial1,例如,保持地址栏中的状态,但将其转换为PHP处理的$\u GET请求 我可以使用.htaccess文件,但我不希望URL被重写-我希望它保持干净和友好。在这里,我唯一的选择是使用PHP的字符串拆分函数来获取一些假装的$\u获取数据吗 谢谢 James一个PHP Res

StackOverflow有一个非常整洁的URL格式。它看起来像一个目录结构,但这里的每个问题都不能有一个目录!我的问题是:

如何获取
http://www.site.com/sections/tutorials/tutorial1
,例如,保持地址栏中的状态,但将其转换为PHP处理的
$\u GET
请求

我可以使用
.htaccess
文件,但我不希望URL被重写-我希望它保持干净和友好。在这里,我唯一的选择是使用PHP的字符串拆分函数来获取一些假装的
$\u获取
数据吗

谢谢


James

一个PHP Rest框架可以为您做到这一点,所以我建议您参考这个。大多数框架都不会从
$\u GET
加载数据,但会提供一种类似的、同样方便的读取方法。

PHP Rest框架可以为您完成这一任务,因此我建议您参考这一点。大多数框架不会从
$\u GET
加载数据,但会提供类似的、同样方便的读取方法。

如果不想使用mod rewrite,最好的解决方案是在
$\u服务器['REQUEST\u URI']
变量中使用正则表达式

i、 e:

如果要设置捕获所有php脚本。IE如果脚本请求不存在,请使用默认脚本,使用mod rewrite将所有内容重定向到一个脚本,即zend框架(以及大多数PHP MVC框架)使用以下方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

我想这可能有点麻烦

如果不想使用mod rewrite,最好的解决方案是在
$\u服务器['REQUEST\u URI']
变量中使用正则表达式

i、 e:

如果要设置捕获所有php脚本。IE如果脚本请求不存在,请使用默认脚本,使用mod rewrite将所有内容重定向到一个脚本,即zend框架(以及大多数PHP MVC框架)使用以下方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
我想这可能有点麻烦

这实际上是一种构建URI的方法。不仅如此,这一模式也适用。我建议不要通过研究这个问题来重新发明轮子

此外,您可以切换到RESTful框架,如或,默认情况下,这些框架配置为使用RESTful模式

这实际上是一种构建URI的方法。不仅如此,这一模式也适用。我建议不要通过研究这个问题来重新发明轮子


此外,您可以切换到RESTful框架,如或,默认情况下,这些框架配置为使用RESTful模式

$\u GET
不包含URL中的路径组件,只包含最终跟随
的参数。你可以用

$parts = explode('/', pathinfo($_SERVER['REQUEST_URI'], PATHINFO_DIRNAME));
var_dump($parts);

不过,您似乎应该了解URL重写,例如使用mod_rewrite。“我不希望URL被重写-我希望它保持干净和友好”。。。重写发生在服务器上。用户从未看到“丑陋”的结果。

$\u GET
不包含URL中的路径内容,只包含最终跟随
的参数。你可以用

$parts = explode('/', pathinfo($_SERVER['REQUEST_URI'], PATHINFO_DIRNAME));
var_dump($parts);

不过,您似乎应该了解URL重写,例如使用mod_rewrite。“我不希望URL被重写-我希望它保持干净和友好”。。。重写发生在服务器上。用户永远看不到“丑陋”的结果。

如何,使用
.htaccess
将URL拆分,URL不会更改,而是指向index.php,使用各种
$\u GET
变量,这可以增加以覆盖更多URL部分

# turn rewriting on
RewriteEngine on

# get variables in this order, [object], [object,action], [object,action,selection]
RewriteRule ^([^/\.]+)/?$ /index.php?object=$1 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?object=$1&action=$2 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?object=$1&action=$2&selection=$3 [L,NC,QSA]

那么,使用
.htaccess
将URL拆分,URL不会更改,而是指向index.php,使用各种
$\u GET
变量,这可以增加以覆盖更多的URL部分

# turn rewriting on
RewriteEngine on

# get variables in this order, [object], [object,action], [object,action,selection]
RewriteRule ^([^/\.]+)/?$ /index.php?object=$1 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?object=$1&action=$2 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?object=$1&action=$2&selection=$3 [L,NC,QSA]

谢谢你的修改想法-我完全忘记了。但是,我是否需要编辑apache配置文件?我不能那么容易地访问我的文件系统…@JamWaffles:如果你想做一个捕获所有php脚本,只需使用mod rewrite谢谢你的mod_rewrite想法-我完全忘记了这一点。但是,我是否需要编辑apache配置文件?我不能那么容易地访问我的文件系统…@JamWaffles:如果你想做一个捕获所有php脚本,只需使用mod rewriter,谢谢你的建议,但我不想使用框架-我只想要我的OP中概述的一个功能,所以框架就太简单了。当谈到开发我的站点的其余部分(相当长的一段时间)时,我可以考虑一个:-谢谢你的推荐,但是我宁愿不使用一个框架——我只想要在我的OP中概述的一个特性,所以一个框架会被过度使用。当开发我的站点的其余部分(相当长的一段时间)时,我可以考虑一个:-除非你让它重定向,<代码> .HTAccess < /C> >代码> MODReWry> /COD>只重写URL服务器端。客户端,用户保留干净的URL。除非您将其重定向,
.htaccess
ModRewrite
仅在服务器端重写URL。客户端,用户保留干净的URL。