【问题标题】:how to write pretty URLs without htaccess file in php如何在 php 中编写没有 htaccess 文件的漂亮 URL
【发布时间】:2015-11-12 11:41:43
【问题描述】:

没有 htaccess 的漂亮 URL

我想写漂亮的 URL,比如:
http://yousite.com/member/1/ 而不是 http://yousite.com/index.php?page=member&id=1
但是我用 htaccess 文件做了,现在我想在没有 htaccess 文件的情况下执行此操作,因为有时您无权在服务器上编辑 htaccess 文件。

【问题讨论】:

  • 这是不可能的。
  • 也许更好的论坛来问这个问题是serverfault.com

标签: php .htaccess url url-rewriting pretty-urls


【解决方案1】:

如果您有 Apache 服务器并启用了 AcceptPathInfo,那么您可以使用 /index.php/nice/looking/url 之类的链接。 URL中间的“index.php”可能看起来有点奇怪,但我认为没有.htaccess也不可能让它看起来更好

否则,您可以要求您的托管商将任何 URL 重定向到 /index.php,这样您就可以处理 URL 重写,而无需在 URL 中包含 /index.php。

然后您可以使用正则表达式匹配来检测要包含的文件。 preg_match('@[/]{1}([a-zA-Z0-9]+)@', $_SERVER["PATH_INFO"], $matches) ($matches 将包含 URL 中的所有“部分”数组)

小心包含文件,使用白名单,确保没有人能够加载内部文件。

【讨论】:

    【解决方案2】:

    实际上,您可以为每个成员动态创建一个新文件夹,其中包含一个简单的索引文件,其中包含您的前端控制器,但即使有可能,您也可能不想这样做,而是想更改您的主机。

    【讨论】:

      【解决方案3】:

      如果我不想使用.htaccess,我可能会在index.php 页面内有这个单行代码

      伪代码:获取ID并重定向用户

      简短说明:连接您在 url 中获得的 id 并使用该 id 重定向到您想要的位置

      真实代码

      header('Location: http://yousite.com/member/'.$_GET['id'].'/');

      【讨论】:

        猜你喜欢
        • 2015-10-14
        • 2016-01-25
        • 1970-01-01
        • 2010-11-01
        • 2012-05-07
        • 2012-03-04
        • 1970-01-01
        • 2011-07-31
        相关资源
        最近更新 更多