【问题标题】:How to configure URLs using PHP [duplicate]如何使用 PHP 配置 URL [重复]
【发布时间】:2014-01-03 09:55:39
【问题描述】:

有没有办法制作这个网址:

http://readme.com/read?blog=10092

看起来像这样:

http://readme.com/read/blog/10092

使用 PHP?

【问题讨论】:

标签: php url hyperlink configure


【解决方案1】:

通过 PHP 本身是不可能的。甚至上面的例子(read?blog)也不是一个 php-only 的解决方案。

PHP 是一个已解析的文件。网络服务器解析 .php 脚本并将其显示给查看器。因此,您必须配置您的服务器(例如 Apache)以使用正确的 php 文件进行请求。最常见的解决方案是 mod_rewrite(http://httpd.apache.org/docs/current/mod/mod_rewrite.html 很多教程)。您必须编辑您的 .httaccess 文件并创建配置选项。

【讨论】:

  • 我也遇到过一些类似这样的网址:readme.com/read/blog/10092.php我该怎么做呢?
  • 这是一个不同的方面。一些搜索引擎跳过没有扩展名的网址。实际上有一些 blog.php 并且它接收 10092.php 作为参数(或者它被服务器预先解析并且只有 10092)所以它就像 blog.php?id=10092 一样工作。
【解决方案2】:

一种技术是使用 .htaccess 重写 url。在根文件夹中创建一个 .htaccess(文件名前有一个点!)文件,并将以下代码放入其中:

Options +FollowSymLinks
RewriteEngine on

RewriteRule /blog/(.*)/ read?blog=$1

现在您可以使用 url 转到同一页面:

http://readme.com/read/blog/10092

【讨论】:

【解决方案3】:

您似乎需要一个 PHP 框架,例如 CakePHPCodeIgniter。它们的主要特征之一是常规机制。但是,您必须首先了解 PHP 中的一些面向对象编程。

【讨论】:

    【解决方案4】:

    普通 php 更复杂,你也必须使用 htaccess。看这个例子:

    RewriteEngine on
    RewriteRule ^/read/blog/([0-9]+)$ /read?blog=$1
    

    网址重写由 .htaccess 及其内部的正则表达式提供支持。如果您想了解更多关于正则表达式的信息,请参阅维基百科:https://en.wikipedia.org/wiki/Regular_expression

    【讨论】:

    • 好的,如果我这样做,我的 URL 应该如下所示:readme.com/read/blog/10092 但我如何从 URL 中获取 10092?也许是一个超全球?
    • 你可以像普通的url参数一样访问它:$blogID = $_GET['blog']
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2013-09-01
    • 2012-05-31
    相关资源
    最近更新 更多