Apache 隐藏 PHP 后缀名

作者:elvbyte 发布时间: 2026-04-07 阅读量:3

要隐藏 PHP 文件的.php 后缀,可以通过 Apache 的 URL 重写功能实现。

以下是具体步骤:

一、启用 Apache 的 mod_rewrite 模块

$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

二、在网站根目录创建或修改.htaccess 文件

添加以下内容:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
    RewriteCond %{THE_REQUEST} \.php [NC]
    RewriteRule ^(.*)\.php$ /$1 [R=301,L]
</IfModule>

三、确保 Apache 配置允许重写

在 Apache 的虚拟主机配置文件中(如 /etc/apache2/sites-available/000-default.conf)添加:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

然后重启 Apache:

$ sudo systemctl restart apache2

四、效果

  • 访问 example.com/about 会实际加载 about.php

  • 访问 example.com/user/profile 会加载 user/profile.php

五、注意事项

  • 确保.htaccess 文件位于网站根目录。

  • 如果服务器有目录同名文件(如 about / 目录和 about.php 文件),需额外处理冲突。

  • PHP 文件内的链接建议使用相对路径(如 href="about" 而非 href="about.php")。