【问题标题】:Is there any way to omit php file name in url without using .htaccess file?有没有办法在不使用 .htaccess 文件的情况下省略 url 中的 php 文件名?
【发布时间】:2015-06-26 09:24:09
【问题描述】:

我的网址是:

https://hostname/page.php/maximum/2000/minimum/200

在我使用的page.php 文件中:

$parameter_array = explode('/',$_SERVER['REQUEST_URI']);

我使用这个$parameter_array 来过滤表格。所以,它工作正常。但是 URL 看起来不太好。我需要:

https://hostname/page/maximum/2000/minimum/200

像这样工作

https://hostname/page.php/maximum/2000/minimum/200

有什么方法可以在不使用htaccess 文件的情况下做到这一点? 注意:我不能使用.htaccess 文件,因为我的客户强迫我不要使用.htaccess.config 文件。如果可能的话会很有帮助。

【问题讨论】:

  • 不确定您是否会收到关于答案更新的通知,但我想出了一个很老套的解决方案,check it out

标签: php


【解决方案1】:

如果您需要https://hostname/page/maximum/2000/minimum/200 来调用page.php,那么您需要使用.htaccess 文件。

另一种选择是使用代码生成。例如,当您使用https://hostname/page/maximum/2000/minimum/200 时,apache 默认会查找 index.php 文件。该 index.php 文件可以只需要您的 page.php。

如果您的 URL 是动态的并且您的目录不存在,那么它将 404,除非您可以提前了解您的 URL 结构以生成正确的目录和文件。

后一种方法有点老套,我会尝试让客户相信使用重写规则是合适的方法。

【讨论】:

    【解决方案2】:

    您可以通过一种方式做到这一点:

    在 page.php 所在的位置创建一个文件夹“页面”。

    在“页面”文件夹内

    页面->最大-> 2000->最小->200

    文件夹“200”内:

    创建 index.php 文件

    在 index.php 文件中写入:

    <?php
    include "../../../../page.php";
    ?>
    

    希望它会起作用。编码愉快!!!

    【讨论】:

    • 我不知道为什么人们对我的评价是负面的。这是不使用 htaccess 的唯一解决方案。负面评价的人:你知道不使用htaccess的其他方法吗?
    • 我猜最大值和最小值会改变吗?在 htat 情况下,这绝对不是一个解决方案。我猜人们会否决你,因为你对所有其他答案都投了反对票。
    • 这个网站旨在帮助他人,而不是试图将他们踩在地上。如果这是一场比赛,那么这是一场争夺最有帮助的答案,而不是最高分的比赛。
    • 哦,为了清楚起见,即使我不同意您的解决方案,我没有也不会投反对票。
    • 这绝对是一个解决方案。我没有否决任何答案。是的,最大值和最小值会改变。在这种情况下,我们必须考虑另一种方式。但在这种情况下,它是正确的。如果你看这个问题,这是唯一可能的答案。如果你能给出这个问题的任何其他可能的答案,我将非常感谢你。
    【解决方案3】:

    使用$_SERVER[PATH_INFO]获取PHP file name之后的路径。

    所以它是/folder/file.php/path/info

    【讨论】:

      【解决方案4】:

      AFAIK 除非您有权访问服务器配置,否则 不可能 不编辑 .htaccess

      如果您确实有权访问服务器设置,例如,您可以将 PHP 设置为所有文件的解释,而不仅仅是以 .PHP 结尾的文件。

      但如果您可以访问服务器设置,您可能不会在这里询问,对吧;)

      值得一试的可能技巧

      如果您可以从一个文件提供整个应用程序,请将其设为 index.php,如果服务器配置正确,则您不必在 URL 中包含该文件名。然后您可以通过以下方式访问它:

      http://example.com/
      

      如果您想要 子文件夹,那么您可以将它们作为参数发送,如下所示:

      http://example.com/?here/or-there/somewhere-else`
      

      可行,对吧? ;)

      【讨论】:

      • 在问题中被告知:我不能使用 .htaccess 文件,因为我的客户强迫我不要使用 .htaccess 或 .config 文件......这里:.config 表示服务器脚本。
      猜你喜欢
      • 2020-09-12
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多