如何在URL地址中隐藏.php
扩展名,以便该地址:
http://www.thesite.com/somefile.php
看起来像:
http://www.thesite.com/somefile
而不使用.htaccess
文件。原因是我有很多目录,并且想隐藏每个目录中所有这些文件的扩展名。我已经尝试将expose_php
设置为关闭,但仍然失败,并出现错误404。
我使用的是PHP 5.3.10和Apache服务器。
尽管您明确表示不,但使用.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服务器的配置文件中。
您可以通过URL重写来实现这一点。如果您不想使用.htaccess,可以在主机配置文件中写入规则。
当存在简单得多的多视图时,URL重写是一种相当繁重的方法
在httpd配置的<Directory>
、<Location>
或<Files>
部分中(如果AllowOverride
允许,则在.htaccess
中)。。。
Options MultiViews
从文档中。。。
MultiViews
的效果如下:如果服务器接收到对/some/dir/foo
的请求,如果/some/dir
启用了MultiViews
,而/some/dir/foo
不存在,则服务器读取查找名为foo.*
的文件的目录,并有效地伪造一个命名所有这些文件的类型映射,为它们分配相同的媒体类型和内容编码,如果客户端通过名称要求其中一个
请注意,冲突的文件和目录可能会导致问题,因此尽量不要将foo.php
和foo.html
或foo/
都放在同一目录中。