【问题标题】:PHP : url rewritingPHP:网址重写
【发布时间】:2014-03-09 22:10:28
【问题描述】:

我想知道如何在没有 .php 扩展名的情况下对 url 进行分页

这里是我的网站:

http://mywebsite.com/ 现在从主页每当我点击任何画廊时,它都会转到页面 gallery.php,其中查询字符串为 galleryID 为 ex

http://mywebsite.com/gallery.php?id=29

所以我想将 url 设置为与页面标题相关的东西,而不是这个 gallery.php?id=29

http://mywebsite.com/9-WEDDING-GIFT-IDEAS

提前致谢

【问题讨论】:

  • id如何成为URL中的title?

标签: php .htaccess url-rewriting


【解决方案1】:

我建议您在开始走这条路后使用 PHP 框架,它为您的应用程序/站点提供了一个结构,并能够按照您的请求设置路由(路径)。

我是Laravel 的粉丝,如果您尚未设置 Apache(Web 服务器)来删除它们,这允许您使用 http://example.com/index.php/friendly-url/goes-here

您可以使用 Laravel 为您提供的 Apache mod_rewrite 删除 index.php/ 部分并只拥有 http://example.com/friendly-url/goes-here。查看the documentation under Pretty URLs

希望对您有所帮助。

【讨论】:

  • 嗨,我在 Windows 主机中有 php 站点,所以我必须处理 web.config 文件而不是 .htaccess
  • 什么版本的 Windows 和 IIS?许多 .htaccess 规则在 IIS 7/7.5 中很容易转换为 URLRewrite
【解决方案2】:

有两种方法可以做到这一点。如果您没有大量 URL,您可以手动将它们添加到您的“.htaccess”文件中。

RewriteEngine On

# MANUAL
RewriteRule ^9-WEDDING-GIFT-IDEAS/?$ gallery.php?id=29 [L]
RewriteRule ^MOST-BEAUTIFUL-WEDDING-LOCATIONS/?$ gallery.php?id=30 [L]
# ...

否则,您可以让“gallery.php”处理根据标题查找要显示的文章。因此,如果它收到“9-WEDDING-GIFT-IDEAS”的标题,那么它可以在数据库中查找该标题并获取该标题的文章。在这里,文章标题将作为 'id' 参数传递给 'gallery.php'。

RewriteEngine On

# PARSING HANDLED IN gallery.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ gallery.php?id=$1 [L]

编辑:

<?php
// gallery.php

$article_title = $_GET['id'];

// ...
// DO A DB LOOKUP TO GET THE ARTICLE ID WHERE TITLE = '$article_title'
// OR JUST GET THE ARTICLE BASED ON THE TITLE INSTEAD

【讨论】:

  • 您好,我有一个gallery.php,我正在使用id 作为queryString 传递查询字符串。你能给我更多关于如何使用画廊标题的信息吗?
  • 是的,当然。一旦您通过id=$1 成功地将名称传递给gallery.php,然后在gallery.php 中,您可以通过$_GET['id'] 访问页面名称。然后,只需对标题等于匹配内容的文章进行数据库查找(例如,9-WEDDING-GIFT-IDEAS)。我已经编辑了我的答案以反映这一点。
  • 但是朋友,如果我从 index.php 传递到画廊,它会显示类似 gallery.php?id-10 的 url,那么 url 看起来会如何不同?
  • Dipa,你真的试过这个吗?我完全按照我现在在答案中和.htaccessgallery.php 中的方式复制/粘贴了代码,并且它完全按照应有的方式工作。我唯一添加的是在画廊中打印出文章标题。 print "Article Title: ".$article_title; 然后我在浏览器中访问它http://YOUR DOMAIN NAME HERE.com/9-WEDDING-GIFT-IDEAS,现在我得到Article Title: 9-WEDDING-GIFT-IDEAS,并且URL 没有更改为gallery.php
  • 现在不用担心,我找到了非常好的文章并解决了我的问题,现在所有问题都解决了!但感谢您的帮助
猜你喜欢
  • 2012-05-25
  • 2011-05-21
  • 2015-03-14
  • 1970-01-01
  • 2013-09-22
  • 2010-10-08
  • 2018-07-31
  • 1970-01-01
相关资源
最近更新 更多