介绍
有一段时间我想从项目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/
将代码放入下面并忽略第一个摘要。在前四行中解决了扩展名的拆卸,并且在其余线路中插入后斜线和重定向。
- 服务器端重定向:
-
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;
}
}
- 重定向在客户端发生:您可以使用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>