如何在Url中隐藏.php扩展名

时间:2018-05-01 17:31:22

标签: php linux .htaccess

# Protect My Directories
Options -Indexes
# Protect my htaccess file
<Files .htaccess>
order deny,allow
deny from all
</Files>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]

对不起,如果有人问过这个问题,但似乎没有找到解决办法,那么上面的.htaccess代码对我有用,而我正在使用Windows,就在最近,我移植到Linux并且当我尝试使用.php (extension)查看网页时,我必须自己安装几乎所有内容。但是如果没有.php (extension),则会显示404 HTTP错误代码。 任何想法为什么?以及如何解决问题?

1 个答案:

答案 0 :(得分:0)

默认情况下,Apache禁止使用.htaccess文件来应用重写规则,因此首先,您需要允许更改文件。使用nano或您喜欢的文本编辑器打开默认的Apache配置文件。

$ sudo nano /etc/apache2/sites-available/000-default.conf

在该文件中,您将在第一行找到一个块。在该块的内部,添加以下新块,以便您的配置文件如下所示。确保所有块都正确缩进。

<VirtualHost *:80>
<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

. . .
</VirtualHost>

保存并关闭文件。要使这些更改生效,请重新启动Apache。

$ sudo systemctl restart apache2

现在,在Web根目录中创建.htaccess文件。

$ sudo nano /var/www/html/.htaccess

在新文件的顶部添加此行以激活重写引擎。

RewriteEngine on

保存文件并退出。

您现在拥有一个可用于重写规则的操作.htaccess文件。