当前位置: 首页 > 面试题库 >

如何在PHP中重写URL?

韩嘉祯
2023-03-14
问题内容

我正在尝试在我的PHP应用程序中实现URL重写。有人可以分享在PHP和MySQL中实现URL重写的分步过程吗?

在我的应用程序中,我想实现以下URL重写,我想重定向

1. http://example.com/videos/play/google-io-2009-wave-intro
2. http://example.com/videos/play/203/google-io-2009-wave-intro

1. http://example.com/videos/play.php?title=google-io-2009-wave-intro
2. http://example.com/videos/play.php?id=203

请告诉我如何以上述任何一种方式实现这两个URL重写。

根据以下两种类型中的SEO,管理,应用程序的观点,哪个URL最好是另一件事。

1. http://example.com/videos/play/google-io-2009-wave-intro
2. http://example.com/videos/play/203/google-io-2009-wave-intro

问题答案:

通常,这只不过是启用mod_rewrite模块(您可能已经在主机上启用了该模块),然后将.htaccess文件添加到您的Web目录中。完成此操作后,您仅需几行之遥即可完成。上面链接的教程将为您服务。

只是为了好玩,这里有一个Kohana.htaccess文件可以重写:

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /rootDir/

# Protect application and system files from being viewed
RewriteRule ^(application|modules|system) - [F,L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/
RewriteRule .* index.php/$0 [PT,L]

这将执行所有请求,并通过index.php文件引导它们。因此,如果您访问了www.examplesite.com/subjects/php,则实际上您可能正在访问www.examplesite.com/index.php?a=subjects&b=php。

如果您发现这些URL具有吸引力,我建议您进一步走一步,并查看MVC框架(模型,视图,控制器)。实际上,它使您可以将网站视为一组功能

www.mysite.com/jokes

public function jokes ($page = 1) {
  # Show Joke Page (Defaults to page 1)
}

或者,www.mysite.com / jokes / 2

public function jokes ($page = 1) {
  # Show Page 2 of Jokes (Page 2 because of our different URL)
}

注意第一个正斜杠是如何调用函数的,后面的所有斜杠都填充了该函数的参数。这真的非常好,让网络开发变得更加有趣!



 类似资料:
  • 问题内容: 我在一个免费的支持PHP的服务器上安装了此脚本: 它创建文件,但为空。 如何创建文件并向其中写入内容,例如“猫追老鼠”行? 问题答案: 您可以使用更高级别的函数,例如,与调用,相同,然后依次将数据写入文件。

  • 问题内容: 网站正在无法访问文件的网络主机上运行。但是,我想对用户友好的URL进行URL重写。 例如原始URL 预期网址 问题答案: 正如其他人所说,只需使用即可。 网址中间的“ index.php”可能看起来有些奇怪,但是我认为没有.htaccess可能无法使其看起来更好 否则,您可以要求托管服务商将任何URL重定向到/index.php,以便无需使用URL就可以处理URL重写。 然后,您可以使

  • 问题内容: 我有一个AlertDialog dlgDetails从另一个显示AlertDialog dlgMenu。如果用户按下dlgDetails中的“后退”按钮,我希望能够再次显示dlgMenu,如果他在对话框外按下,则仅退出对话框。 我认为最好的方法是onBackPressed为dlgDetails覆盖,但是我不确定该怎么做,因为必须使用Builder间接创建AlertDialogs。 我正

  • 问题内容: 是否可以写字符串或登录控制台? 我的意思是说 就像在JSP中一样,如果我们打印,则它将在控制台而不是页面上。 问题答案: 火狐浏览器 在Firefox上,您可以使用名为FirePHP的扩展程序,该扩展程序可以将信息从PHP应用程序记录和转储到控制台。这是很棒的Web开发扩展Firebug的附加组件。 http://www.studytrails.com/blog/using-firep

  • 问题内容: 我在Nginx或Apache中对此地址进行了重写: 像这样的脚本 如何在PHP中访问此重写的URL?因为,如果我当然使用,我会得到: 但我只想要: 这可能吗?感谢您的帮助。 更新nginx cnf 问题答案: 在conf中,我们需要添加用户标头: 并阅读: 更新 由于某些原因,nginx不喜欢标题名称中的符号“ _”,之前不知道它的工作方式,也许在nginx更新后有所更改。现在我正在使

  • 问题内容: 我有一个网址,看起来像: 我将如何将该URL转换为: 我认为WordPress也是一样。 如何使用PHP创建友好的URL? 问题答案: 您基本上可以通过以下两种方式执行此操作: .htaccess路由与mod_rewrite 在您的根文件夹中添加一个名为的文件,并添加以下内容: 这将告诉Apache为该文件夹启用mod_rewrite,并且如果询问它与正则表达式匹配的URL,它将在 内