放置没有文件扩展名的链接(.php)

时间:2013-08-02 13:38:03

标签: php apache

是否可以配置Apache以便不显示文件扩展名?

例如:假设我有domain.com/page.php但想要domain.com/page作为网址。

任何想法?

6 个答案:

答案 0 :(得分:40)

这是你的.htaccess文件

#turn on url rewriting 
RewriteEngine on

#remove the need for .php extention 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

这允许您访问没有扩展名的.php文件,因此您的链接应该是

href="/somepage"

这将指向

href="/somepage.php" 

答案 1 :(得分:15)

还有MultiViews作为vhost或.htaccess配置选项。见http://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews

从该页面开始:

  

MultiViews的效果如下:如果服务器收到/ some / dir / foo的请求,如果/ some / dir启用了MultiViews,并且/ some / dir / foo不存在,那么服务器会读取目录查找名为foo。*的文件,并有效地伪造一个命名所有这些文件的类型映射,为它们分配相同的媒体类型和内容编码,如果客户端通过名称请求其中一个文件。然后,它会根据客户的要求选择最佳匹配。

答案 2 :(得分:5)

这称为URL重写。我最近不得不第一次使用它,我使用this tutorial来学习它,希望你也会发现它很棒:

答案 3 :(得分:2)

您需要一个名为URL重写的Web服务器功能 - 每个Web服务器应用程序(apache,IIS,nginx)都支持此功能。顾名思义,它会获取请求的URL并将其重写为您定义的特定格式。

www上有许多指南,即使您使用的是共享托管解决方案,您仍然可以添加/修改.htaccess文件来执行此操作。

答案 4 :(得分:2)

这是你的.htaccess文件



RewriteEngine On
RewriteRule ^page?$ page.php






<a href="page">page</a>
&#13;
&#13;
&#13;

答案 5 :(得分:1)

这很简单。只需创建.htaccess文件,并将其放在root中,然后您可以覆盖自己的url。

Use this manual.