【发布时间】:2010-05-15 09:55:00
【问题描述】:
我想用纯 PHP 创建一个网站。我想隐藏 url 参数。 IE。我想用干净的网址制作我的网站。有没有办法在不使用任何框架的情况下做到这一点? cURL 有帮助吗?
【问题讨论】:
我想用纯 PHP 创建一个网站。我想隐藏 url 参数。 IE。我想用干净的网址制作我的网站。有没有办法在不使用任何框架的情况下做到这一点? cURL 有帮助吗?
【问题讨论】:
如果您不想或不能使用.htaccess,请参阅URL rewriting in PHP without .htaccess,否则请参阅How to: URL rewriting in PHP?。
【讨论】:
看看吧……在你开始你的东西之前
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
【讨论】:
首先:仅使用 PHP 是不可能的(至少不是我在阅读干净 URL 时想到的 URL 形式)。 Web 服务器需要知道如何处理请求以及将哪些请求传递给您的 PHP 脚本。否则你可能只会得到 404 响应。
因为 Web 服务器的默认行为是只获取请求的 URL 路径并尝试将其映射到文档根目录下的现有文件。如果找到了相应的文件,则文件的内容将被传回客户端,或者——与 PHP 文件一样——文件的内容被传给适当的解释器,并将返回的数据传回客户端。如果没有找到该文件,那么它会以状态码 404 进行响应。所以在某些时候您需要配置您的 Web 服务器。
但是在那之后,当请求被传递到您的 PHP 脚本时,您肯定可以只使用 PHP 来建立干净的 URL。我宁愿建议使用 PHP 而不是使用 Web 服务器实用程序。因为您的 PHP 应用程序应该最清楚如何处理请求的 URL。
在 PHP 中,所有必需的信息都在$_SERVER variable:
$_SERVER['REQUEST_URI'] 保存请求的 URL 路径和查询(您可以使用 parse_url 解析它),并且$_SERVER['PATH_INFO'] 持有 PATH_INFO 如果您正在使用它(请参阅 Apache’s AcceptPathInfo directive)。【讨论】:
不,没有 curl 或框架这样做。也不是 php。
处理 url 的是 web 服务器。
因此,如果您想要假网址,则必须设置您的网络服务器以将某些网址重定向到某些脚本。
最常见的方法是使用带有 mod_rewrite 模块的 Apache Web 服务器
【讨论】:
根据我的阅读和理解,有两种方法可以做到这一点:
mod_rerite,通过.htaccess 文件重写规则,一切似乎都得到了调整,这很容易做到,但会给大型网站的网络服务器带来很大的负载.htaccess,但只是将所有内容重定向回 index.php,调度程序会根据需要重新路由路径。 phpvideotutorials.com 上有一个很棒的教程,该教程称为 tumblelog。【讨论】:
尝试重写url using php和重写url using .HTACCESS。
例如原始网址,
www.domain.com/item.php?product=Cars for sale in amazon
用php
www.domain.com/item.php?product=Cars-for-sale-in-amazon
并带有 .HTACCESS 文件
www.domain.com/Cars-for-sale-in-amazon
【讨论】: