如何在URL地址中隐藏.php扩展名,以便此地址:
.php
http://www.thesite.com/somefile.php
看起来像:
http://www.thesite.com/somefile
.htaccess
expose_php
我用的是PHP 5。3.10和Apache服务器。
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服务器的配置文件中。
e37o9pze2#
您可以使用URL rewriting来实现这一点。如果你不想用。htaccess,您可以在主机配置文件中写入规则。
mcdcgff03#
当存在简单得多的MultiViews时,URL重写是一种非常笨拙的方法在httpd配置的<Directory>、<Location>或<Files>部分中(如果AllowOverride允许,则在.htaccess中)。..
<Directory>
<Location>
<Files>
AllowOverride
Options MultiViews
从文件上。..MultiViews的效果如下:如果服务器接收到/some/dir/foo请求,如果/some/dir启用了MultiViews,而/some/dir/foo不存在,则服务器读取目录,查找名为foo.*的文件,并有效地伪造一个命名所有这些文件的类型Map,为它们分配与客户端按名称请求其中一个文件时相同的媒体类型和内容编码请注意,冲突的文件和目录可能会导致问题,因此尽量不要将foo.php和foo.html或foo/放在同一个目录中。
MultiViews
/some/dir/foo
/some/dir
foo.*
foo.php
foo.html
foo/
3条答案
按热度按时间tcomlyy61#
虽然您明确表示不可以,但使用
.htaccess
文件将从站点中所有子目录的所有PHP文件中删除.php
扩展名。我想这就是你想要的。将其放入
.htaccess
文件将删除所有。php文件扩展名。* 或者 * 你可以直接把它放到web服务器的配置文件中。e37o9pze2#
您可以使用URL rewriting来实现这一点。如果你不想用。htaccess,您可以在主机配置文件中写入规则。
mcdcgff03#
当存在简单得多的MultiViews时,URL重写是一种非常笨拙的方法
在httpd配置的
<Directory>
、<Location>
或<Files>
部分中(如果AllowOverride
允许,则在.htaccess
中)。..从文件上。..
MultiViews
的效果如下:如果服务器接收到/some/dir/foo
请求,如果/some/dir
启用了MultiViews
,而/some/dir/foo
不存在,则服务器读取目录,查找名为foo.*
的文件,并有效地伪造一个命名所有这些文件的类型Map,为它们分配与客户端按名称请求其中一个文件时相同的媒体类型和内容编码请注意,冲突的文件和目录可能会导致问题,因此尽量不要将
foo.php
和foo.html
或foo/
放在同一个目录中。