如何隐藏PHP文件扩展名而不使用,htaccess

7eumitmz  于 2023-04-28  发布在  PHP
关注(0)|答案(3)|浏览(105)

如何在URL地址中隐藏.php扩展名,以便此地址:

http://www.thesite.com/somefile.php

看起来像:

http://www.thesite.com/somefile
  • 不使用 * .htaccess文件。这样做的原因是因为我有许多目录,并希望隐藏所有这些文件在每个目录的扩展名。我尝试将expose_php设置为off,但仍然失败,出现错误404。

我用的是PHP 5。3.10和Apache服务器。

tcomlyy6

tcomlyy61#

虽然您明确表示不可以,但使用.htaccess文件将从站点中所有子目录的所有PHP文件中删除.php扩展名。我想这就是你想要的。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteRule ^(.*)$ $1.php
</IfModule>

将其放入.htaccess文件将删除所有。php文件扩展名。* 或者 * 你可以直接把它放到web服务器的配置文件中。

e37o9pze

e37o9pze2#

您可以使用URL rewriting来实现这一点。如果你不想用。htaccess,您可以在主机配置文件中写入规则。

mcdcgff0

mcdcgff03#

当存在简单得多的MultiViews时,URL重写是一种非常笨拙的方法
在httpd配置的<Directory><Location><Files>部分中(如果AllowOverride允许,则在.htaccess中)。..

Options MultiViews

从文件上。..
MultiViews的效果如下:如果服务器接收到/some/dir/foo请求,如果/some/dir启用了MultiViews,而/some/dir/foo不存在,则服务器读取目录,查找名为foo.*的文件,并有效地伪造一个命名所有这些文件的类型Map,为它们分配与客户端按名称请求其中一个文件时相同的媒体类型和内容编码
请注意,冲突的文件和目录可能会导致问题,因此尽量不要将foo.phpfoo.htmlfoo/放在同一个目录中。

相关问题