有没有办法在不使用.htaccess文件的情况下省略url中的php文件名?

时间:2015-04-19 19:12:26

标签: php

我的网址是:

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文件? N.B:我无法使用.htaccess文件,因为我的客户端强迫我不要使用.htaccess.config文件。如果可能的话,将会非常有用。

4 个答案:

答案 0 :(得分:2)

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

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

如果你的网址是动态的,你的目录不存在那么它将是404,除非你事先知道你的网址结构以生成正确的目录和文件。

后一种方法有点hacky,我会试图说服客户使用重写规则是适当的方法。

答案 1 :(得分:1)

除非您有权访问服务器配置,否则

AFAIK,如果不编辑.htaccess,则

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

但是,如果你有权访问服务器设置,你可能不会在这里问,对吧;)

值得尝试的一个可能的黑客

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

http://example.com/

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

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

可以工作,对吗? ;)

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

你可以这样做:

创建一个文件夹" page"哪里有page.php。

内部"页面"夹

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

内部文件夹" 200":

创建index.php文件

在index.php文件中写:

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

希望它能奏效。快乐的编码!!!