Table des matières
PATHINFO
URL 重写
如何生成 URL 地址
更复杂的自定义 URL 地址
Maison php教程 php手册 FleaPHP 开发指南

FleaPHP 开发指南

Jun 21, 2016 am 09:06 AM
example htaccess pathinfo url

开发指南

FleaPHP 应用程序通过分析 URL 地址来确定要执行的控制器及动作,以及传递给动作方法的参数。

默认情况下,FleaPHP 应用程序通过

<code>http://www.example.com/index.php?controller=test&action=benchmark&source=1</code>
Copier après la connexion

这样的 URL 地址来访问应用程序的每一个功能。但有时候你希望 URL 地址能够更好看一点,例如上面的地址变为:

<code>http://www.example.com/index.php/test/benchmark/source/1</code>
Copier après la connexion

或者

<code>http://www.example.com/test/benchmark/source/1</code>
Copier après la connexion

要实现上述两种效果,必须借助 FleaPHP 对 PATHINFO 模式和 URL 重写的支持。



PATHINFO

要使用 PATHINFO 模式来运行应用程序,只需要简单的设置应用程序选项 urlMode 为 URL_PATHINFO 就可以了。

采用 PATHINFO 时,对于相对地址,必须改写为使用 / 开头的绝对地址。例如 css/style.css 应该写为 /css/style.css,而 images/banner.jpg 要写为 /images/banner.jpg。除了图片、CSS 样式表和 JavaScript 文件外,对网站其他文件的引用也要使用绝对地址。
这个要求同样适用于 URL 重写模式。



URL 重写

URL 重写比起 PATHINFO 来复杂得多,而且有一些限制。

  • 目前 FleaPHP 对 URL 重写的支持还很简单,与 PATHINFO 相比仅仅是从 URL 地址中隐藏了 index.php 入口文件的名字;
  • URL 重写需要 Apache 的 mod_rewrite 模块支持(IIS 用户可以使用一些商业软件);
  • 必须配置 Apache 或者 .htaccess 文件,以便启用 mod_rewrite 模块;
  • 对于复杂的目录结构,你不得不编写更多的重写规则。

好了,希望上面的话没有吓到你。那么看看最简单的情况:

<code>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ /index.php/$1 [L]</code>
Copier après la connexion

上面的重写规则很简单,首先是启用 URL 重写。然后是判断请求的文件是否已经存在。只有当请求的文件不存在时才进行 URL 重写。

把上述内容保存到应用程序根目录,文件名为 .htaccess。

很奇怪,在 Windows 资源管理器里面不允许你建立 .htaccess 这样只有扩展名的文件。所以你必须先将文件保存为其他名字,例如 app.htaccess。然后进入命令行窗口(通过开始菜单运行 cmd.exe 程序即可),输入 ren app.htaccess .htaccess 命令来对文件改名。

最后,修改应用程序设置的 urlMode 选项为 URL_REWRITE。



如何生成 URL 地址

在 FleaPHP 应用程序中,我们总是应该使用 url() 函数和 FLEA_Controller_Action::_url() 方法来生成 URL 地址。这样不管 urlMode 选项怎么设置,我们都可以确保应用程序生成可以工作的 URL 地址。

例如 url('test', 'benchmark', array('source' => 1)) 这样的调用,在不同 urlMode 设置下,生成的 URL 地址也不同。

这种特性,可以避免因为应用程序修改了 urlMode 选项,而导致需要手工替换全部 URL 地址的问题。



更复杂的自定义 URL 地址

正在开发的 URL 路由功能,可以让应用程序获得完全的自定义 URL。例如

<code>http://www.example.com/index.php?controller=article&action=view&article_id=123</code>
Copier après la connexion

可以用下面的地址来代替。不但好看,而且便于搜索引擎索引文件。

http://www.example.com/article/123
Copier après la connexion



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL Jul 25, 2023 am 09:05 AM

Introduction à la fonction PHP — get_headers() : Présentation de l'obtention des informations d'en-tête de réponse de l'URL : Dans le développement PHP, nous avons souvent besoin d'obtenir les informations d'en-tête de réponse de la page Web ou de la ressource distante. La fonction PHP get_headers() peut facilement obtenir les informations d'en-tête de réponse de l'URL cible et les renvoyer sous la forme d'un tableau. Cet article présentera l'utilisation de la fonction get_headers() et fournira quelques exemples de code associés. Utilisation de la fonction get_headers() : get_header

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Mar 01, 2024 pm 01:20 PM

La raison de l'erreur est NameResolutionError(self.host,self,e)frome, qui est un type d'exception dans la bibliothèque urllib3. La raison de cette erreur est que la résolution DNS a échoué, c'est-à-dire le nom d'hôte ou l'adresse IP qui était. La tentative de résolution n'a pas pu être trouvée. Cela peut être dû au fait que l'adresse URL saisie est incorrecte ou que le serveur DNS est temporairement indisponible. Comment résoudre cette erreur Il peut y avoir plusieurs façons de résoudre cette erreur : Vérifiez si l'adresse URL saisie est correcte et assurez-vous qu'elle est accessible Assurez-vous que le serveur DNS est disponible, vous pouvez essayer d'utiliser la commande "ping" dans la ligne de commande pour tester si le serveur DNS est disponible Essayez d'accéder au site Web en utilisant l'adresse IP au lieu du nom d'hôte si vous êtes derrière un proxy

Quelle est la différence entre HTML et URL Quelle est la différence entre HTML et URL Mar 06, 2024 pm 03:06 PM

Différences : 1. Différentes définitions, l'URL est un localisateur de ressources uniforme et le HTML est un langage de balisage hypertexte ; 2. Il peut y avoir plusieurs URL dans un HTML, mais une seule page HTML peut exister dans une URL. 3. HTML fait référence à ; une page Web, et l'url fait référence à l'adresse du site Web.

Comment obtenir votre identifiant Steam en quelques étapes ? Comment obtenir votre identifiant Steam en quelques étapes ? May 08, 2023 pm 11:43 PM

De nos jours, de nombreux utilisateurs Windows qui aiment les jeux ont accédé au client Steam et peuvent rechercher, télécharger et jouer à n'importe quel bon jeu. Cependant, de nombreux profils d'utilisateurs peuvent porter exactement le même nom, ce qui rend difficile la recherche d'un profil ou même la liaison d'un profil Steam à d'autres comptes tiers ou la participation à des forums Steam pour partager du contenu. Le profil se voit attribuer un identifiant unique à 17 chiffres, qui reste le même et ne peut être modifié à aucun moment par l'utilisateur, contrairement au nom d'utilisateur ou à l'URL personnalisée. Quoi qu'il en soit, certains utilisateurs ne connaissent pas leur Steamid, et il est important de le savoir. Si vous ne savez pas comment retrouver le Steamid de votre compte, pas de panique. Dans cet article

Comment utiliser l'encodage et le décodage d'URL en Java Comment utiliser l'encodage et le décodage d'URL en Java May 08, 2023 pm 05:46 PM

Utilisez url pour encoder et décoder la méthode de classe java.net.URLDecoder.decode(url, decoding format) decoder.decoding pour l'encodage et le décodage. Convertie en chaîne ordinaire, URLEncoder.decode(url, format d'encodage) transforme la chaîne ordinaire en chaîne au format spécifié packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. Encodeur d'URL

Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Jun 22, 2023 pm 01:57 PM

Scrapy est un puissant framework d'exploration Python qui peut être utilisé pour obtenir de grandes quantités de données sur Internet. Cependant, lors du développement de Scrapy, nous rencontrons souvent le problème de l'exploration des URL en double, ce qui fait perdre beaucoup de temps et de ressources et affecte l'efficacité. Cet article présentera quelques techniques d'optimisation de Scrapy pour réduire l'exploration des URL en double et améliorer l'efficacité des robots d'exploration Scrapy. 1. Utilisez les attributs start_urls et Allowed_domains dans le robot d'exploration Scrapy pour

Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot May 12, 2023 pm 06:37 PM

Préface Dans certains cas, les préfixes du contrôleur de service sont cohérents. Par exemple, le préfixe de toutes les URL est /context-path/api/v1 et un préfixe unifié doit être ajouté à certaines URL. La solution envisageable consiste à modifier le chemin contextuel du service et à ajouter api/v1 au chemin contextuel. La modification du préfixe global peut résoudre le problème ci-dessus, mais il existe des inconvénients si l'URL a plusieurs préfixes, par exemple certains. Les URL nécessitent des préfixes. S'il s'agit de api/v2, il ne peut pas être distingué. Si vous ne souhaitez pas ajouter api/v1 à certaines ressources statiques du service, il ne peut pas être distingué. Ce qui suit utilise des annotations personnalisées pour ajouter uniformément certains préfixes d'URL. un,

que signifie l'URL que signifie l'URL Aug 04, 2023 am 11:43 AM

URL est l'abréviation de « Uniform Resource Locator », qui signifie « Uniform Resource Locator » en chinois. Une URL est une adresse utilisée pour localiser et accéder à des ressources spécifiques via Internet. Elle est couramment utilisée dans la navigation Web et les requêtes HTTP. La fonction principale de l'URL est de localiser et d'accéder aux ressources sur Internet. Ces ressources peuvent être des pages Web, des images, des vidéos, des documents ou d'autres fichiers.

See all articles