Php 动态创建URL
真正让我困惑的是网站是如何有URL的,比如:Php 动态创建URL,php,.htaccess,url,mod-rewrite,url-rewriting,Php,.htaccess,Url,Mod Rewrite,Url Rewriting,真正让我困惑的是网站是如何有URL的,比如: -及- 最初,我认为您可以简单地创建一个php文件并在.htaccess中使用URL重写。例如: (这根本没有道理) 显然,情况并非如此,因为它不仅对更多后续斜杠无效,而且诸如Wordpress之类的CMS会自动生成“动态”URL的内容,如果URL无法识别,则会重定向到301页面 我想在我的网站上实现这一点,但我完全不知道如何实现这一点。我正在努力深入研究这个话题,因为我自己不知道这个系统实际上是什么。显然,我完全错了,这让我感到困
- (这根本没有道理)
Sutton因此,如果您使用像这样的框架,这是一种非常简单的路由方法 每个项目中都有一个“routes.php”文件,该文件定义对URL的调用,并使用controllers方法进行响应。这通常会返回一个视图。 它使创建这样的内容与添加这样的行一样容易
Route::get('home', 'PagesController@home');
当您转到example.com/home时,它将启动名为“PagesController”的控制器并运行其home方法。在这个方法中,您可以返回一个视图,该视图将是您想要显示的页面
这可以通过其他方式扩展。
您可以有另一条几乎相同的路由,但是当有人向同一控制器发送post数据时,可以有另一种方法
Route::post('home', 'PagesController@submittedhome');
因此,现在您有了另一个路由,它将post输入到该页面,并从同一控制器触发一个完全不同的方法。这些控件+更多控件可以让您轻松实现您想要的,并且是laravel核心基础的一部分
以下是laravel页面上的内容,可以为您提供更多的启发 因此,如果您使用像这样的框架,这是一种非常简单的路由方式 每个项目中都有一个“routes.php”文件,该文件定义对URL的调用,并使用controllers方法进行响应。这通常会返回一个视图。 它使创建这样的内容与添加这样的行一样容易
Route::get('home', 'PagesController@home');
当您转到example.com/home时,它将启动名为“PagesController”的控制器并运行其home方法。在这个方法中,您可以返回一个视图,该视图将是您想要显示的页面
这可以通过其他方式扩展。
您可以有另一条几乎相同的路由,但是当有人向同一控制器发送post数据时,可以有另一种方法
Route::post('home', 'PagesController@submittedhome');
因此,现在您有了另一个路由,它将post输入到该页面,并从同一控制器触发一个完全不同的方法。这些控件+更多控件可以让您轻松实现您想要的,并且是laravel核心基础的一部分
以下是laravel页面上的内容,可以为您提供更多的启发
如果有人能解释一下这个系统叫什么
它被称为RewriteEngine
,是apache的一部分,其他web服务器有不同的mod,但这是最流行的
RewriteEngine on
RewriteRule ^shop/$ shop.php [L]
RewriteRule ^shop/products/(.*?)/$ products.php?type=$1 [L]
当用户访问
www.site.com/shop/
如果用户访问www.site.com/shop/products/games/
[L]
-称为标志(L | last
):
[L]
标志导致mod_rewrite停止处理规则集。在里面
在大多数上下文中,这意味着如果规则匹配,就没有其他规则
将被处理。这对应于Perl中的最后一个命令,或者
C中的break命令。使用此标志指示当前
应立即应用该规则,而不考虑进一步的规则
^
相对于web根目录(somesite.com/^
)$
表示字符串的结尾(somesite.com/^somedir/test/$将不处理此部分
)
资源: 了解更多关于和 如果有人能解释一下这个系统叫什么 它被称为
RewriteEngine
,是apache的一部分,其他web服务器有不同的mod,但这是最流行的
RewriteEngine on
RewriteRule ^shop/$ shop.php [L]
RewriteRule ^shop/products/(.*?)/$ products.php?type=$1 [L]
当用户访问
www.site.com/shop/
如果用户访问www.site.com/shop/products/games/
[L]
-称为标志(L | last
):
[L]
标志导致mod_rewrite停止处理规则集。在里面
在大多数上下文中,这意味着如果规则匹配,就没有其他规则
将被处理。这对应于Perl中的最后一个命令,或者
C中的break命令。使用此标志指示当前
应立即应用该规则,而不考虑进一步的规则。