4

是否可以在不使用 htaccess 文件的情况下缩短 url?例如我有这个网址。

this/is/a/very/long/url.php

改成

short/url.php

我希望我能得到好的答案 THX 伙计们:)

4

4 回答 4

3

是的,主要用于框架

一种称为使用前端控制器的方法

例如:您的前端控制器是 index.php

您的页面链接以 .../index.php/nything/url.php 的方式生成

但实际链接是 .../this/is/long/url.php

前端控制器提取客户端请求的页面信息并显示与之相关的相关页面

阅读更多:http ://en.wikipedia.org/wiki/Front_Controller_pattern

于 2013-10-25T07:41:23.040 回答
1

这是一个很好的问题,有多种选择,但是 .htaccess 文件可能是您最好的选择。

这个 SO post 描述了它

处理 url 重写服务器端是这里的关键,因为它执行起来会更快,并且在某些 URL 上使用时不会破坏您的脚本。

所以 www.yourdomain.com/test/4/twenty/long/url/could/be/shorter/

www.yourdomain.com 之后的所有参数都可以通过各种 PHP 方法检索,包括阅读 PHP$_SERVER是一个好主意,因为很多变量都放置在该全局数组中。

于 2013-10-25T07:40:42.243 回答
0

您可以在Javascript中使用此代码来重写当前 URL:

if (location.href.indexOf("this/is/a/very/long/url.php") > -1)
  location.assign(location.href.replace(/this\/is\/a\/very\/long\/(url\.php)/, "short/$1"));
于 2013-10-25T07:35:10.853 回答
0

mod_rewrite是 Apache 的一部分,所以需要在 Apache config 中进行配置。.htaccess实际上是Apache“实时”配置“每个目录”。

一般来说(我认为)重写 url 的最好方法是将所有内容重写到一个文件中,比如说index.php然后“重定向”到基于 URL 的特定文件。您可以在 Web 上阅读很多关于 PHP 中的“URL 路由”的内容。

于 2013-10-25T07:37:14.323 回答