如何使用mod_rewrite从工作中删除(.php)扩展
#网络开发人员 #编码 #php #advanced

介绍

有一段时间我想从项目URL中删除(.php)扩展名,这对我来说是一个极端的挑战,我很无聊,因为我希望我的.php不显示,然后我偶然发现了mod_rewrite。从那时起,我一直赞赏mod_rewrite功能。

我如何在项目中删除我的扩展名是使用.htaccess。本教程将解释有关删除PHP扩展的所有信息。

在此之前,如果您对PHP mod_rewrite不了解,我会建议您阅读我的教程,标题为:What You Should Know About PHP Mod_Rewrite And Mod_Security.,它将帮助您对Mod Reprite有一个想法,并且拥有此想法将使您对您更容易理解。

现在,没有浪费您的大部分时间,让我们直接跳入本指南!

什么是.htaccess

.htaccess是一个由Apache Web服务器进行配置的文件,以控制网站的行为。它经常用于处理错误页面,重定向在线流量,执行安全法规,限制对网站的访问以及执行其他与网站相关的职责。

注意:网站的根目录是存储.htaccess文件的位置,并且通常隐藏在视图中。 .htaccess文件可以使用文本编辑器进行编辑,所有更改将立即生效,这使该文件成为Web管理员的灵活而强大的工具。

.htacess文件的功能

以下是.htaccess文件使您可以执行

的事情

URL重定向:用户可以使用.htaccess文件从过时的URL重定向到新URL。

密码保护:可以使用.htaccess文件来保护网站,目录或特定文件。

限制对特定文件和目录的访问: .htaccess文件可用于限制对特定文件或目录的访问。

自定义错误页面:您可以使用.htaccess文件(内部服务器错误)为http错误代码(未找到)和500的自定义错误页面。

重写规则:使URL更具用户或SEO友好,请使用.htaccess文件重写。

MIME类型:您可以在.htaccess文件中定义文件的模拟类型。

防止热链接:您可以通过使用.htaccess文件来阻止其他网站为照片和其他媒体资产创建热链接。

激活压缩: .htaccess文件可用于激活GZIP压缩,该文件可以加速网站的加载时间。

强制https: .htaccess文件可用于强制所有流量的HTTPS加密。

块垃圾邮件机器人:阻止垃圾邮件机器人访问网站,.htaccess文件可用于阻止特定的IP地址或用户代理。

在本教程中,我们将仅关注重写URL

删除.php扩展

您必须首先启用Apache Web服务器上的mod重写。首先列出了Apache Web服务器上激活mod_rewrite(.htaccess)的过程。

  • 打开htaccess文件

在终端窗口中运行以下命令以查看.htaccess文件。请根据您的需要修改.htaccess文件的文件路径。

$ sudo nano /var/www/html/.htaccess
  • 从URL 中消除.php扩展

要从网站的URL中删除.php扩展名,您可以在.htaccess文件中使用以下代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

在此代码的帮助下,将指示Apache Web服务器从URL中删除.php扩展名,同时仍提供适当的.php文件。例如,如果用户尝试访问URL http://example.com/page.

记住:在进行更改之前,请始终创建.htaccess文件的备份。如果您对.htaccess文件进行错误的修改,您的网站可能会发生故障或无法使用。

  • 重新启动Apache Web服务器

可以使用以下命令重新启动Apache服务器。

$ sudo systemctl restart httpd

,也可以在XAMPP上重新启动。

在最后添加尾巴

许多人问我如何在最后添加尾巴,例如:yoursite.com/page/

将代码放入下面并忽略第一个摘要。在前四行中解决了扩展名的拆卸,并且在其余线路中插入后斜线和重定向。

  1. 服务器端重定向:
  2. apache:您可以使用.htaccess文件添加重写规则以重定向URL。这是一个示例:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301]
  • nginx:您可以在nginx.conf文件中使用以下配置:
    location / {
        if (!-e $request_filename){
            rewrite ^(.*)$ /$1/ permanent;
        }
    }
  1. 重定向在客户端发生:您可以使用JavaScript更改浏览器中的URL。这是一个插图:
if (location.pathname.substr(-1) !== '/') {
        location.pathname = location.pathname + '/' + location.search + location.hash;
    }

注意:根据您的唯一用例和配置,应应用上述方法。

结论

我们来到本教程的结尾,希望您对如何使用mod_rewrite从URL中删除(.php)扩展。

我们学会了如何使用.htaccess文件中的mod_rewrite删除扩展。以及如何添加尾随的斜线和更多。

我们只谈论本教程就看到了很多。因此,请随时发表评论!如果您想要更多的instructions,请关注我。

直到下一次,祝您有美好的一天!

关于作者

Emmanuel Okolie 是一家全栈Laravel开发人员,拥有2+年在软件开发行业的经验。结合软件开发,写作和教别人的工作,他已经开发了成熟的功能。他的堆栈包含ReactJs, Laravel, PHP, JavaScript,等。

他担任自由职业者,为客户创建网站并创建技术指南,向他人展示如何完成他的工作。

Emmanuel Okolie 已经准备好并愿意与您交谈。请在Linked-In 上拜访并关注他, Facebook Github Twitter 或他的Website 。 /strong>