实现不带后缀访问php文件的方法:首先在htaccess文件中加入内容“RewriteRule ^(api/token) token.php [L]”;然后通过根目录下的“token.php”来接受“api/token”;最后修改配置文件。
考虑的做法有:
HTTP重写技术,让符合特定正则表达式的URL,交由某个特定的脚本处理(WordPress等很多程序的实践,推荐)
HTTP重定向,和重写差不多
直接提供token文件软连接到token.php,然后配置HTTP服务器使token文件就算无扩展名也由php解释器处理(不推荐)
甚至做个token/目录,借助首页文件也算个办法(index)
.htaccess是一个完整的文件名(只有后缀),它是用于Apache服务器下的配置文件,当.htaccess文件放在某一文件夹下,它仅对该文件夹下的文件和文件夹有效。通过.htaccess文件,可以配置服务器实现很多功能,比如错误定位,密码保护,IP拒绝,URL重写等等。
默认的Apache不支持.htaccess,需要修改Apache的配置文件httpd.conf,才能使得.htaccess有效。
配置方法:
配置方面:
1. 找到apache的安装目录下的conf下的httpd.conf文件,打开文件修改
LoadModule rewrite_module modules/mod_rewrite.so这行代码,他前面有个#号,把#号删掉
找到
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
这个节点,把None改为All.节点可能有多个,修改和PHP路径相关的那个。
3. 重启apache服务
4.在项目目录下创建.htaccess文件,并在里面写配置。
简单例子:
RewriteEngine on //on为打开,off为关闭
RewriteRule ^test$ test.php
ErrorDocument 404 /404.txt
比较全面的配置说明:
一、什么是.htaccess文件?
.htaccess文件,全名为“HyperText Access Control”,即“超文本访问控制文件”,它是一个用于配置Apache服务器的轻量级配置文件,可以用来实现URL重写、访问控制、缓存设置等功能,通过.htaccess文件,可以简化Apache服务器的配置,提高管理效率。
二、如何创建.htaccess文件?
1. 打开终端或命令提示符,进入网站根目录,通常情况下,网站根目录是指包含public_html文件夹的目录。
2. 在根目录下创建一个新的文本文件,命名为.htaccess,文件名前面有一个点(.),表示这是一个隐藏文件。
3. 使用文本编辑器(如Notepad++、Sublime Text等)打开刚刚创建的.htaccess文件,开始编写配置指令。
4. 保存并关闭.htaccess文件。
三、如何定位.htaccess文件?
在网站根目录下查找.htaccess文件,如果没有找到,可能是因为该网站使用了Apache服务器的其他模块(如mod_rewrite),需要检查Apache的配置文件(httpd.conf或apache2.conf)中的LoadModule指令,确保已经启用了mod_rewrite模块。
四、如何编写和修改.htaccess文件?
1. 在.htaccess文件中,可以使用以下基本指令:
- RewriteEngine On:启用URL重写功能。
-RewriteRule pattern replacement [flag]:根据指定的模式匹配URL,并执行相应的替换操作,pattern是URL模式,replacement是替换后的URL,flag是可选参数,用于控制重写规则的行为(如L标志表示最后一条规则)。
-Header:设置HTTP响应头信息,Header set X-Content-Type-Options nosniff:禁止浏览器对资源进行MIME类型嗅探。
-LimitRequests:限制客户端请求的数量,超过限制将返回503错误。
-php_value value:设置PHP运行时环境变量,php_value max_execution_time 300:设置脚本最大执行时间为300秒。
2. 编写完.htaccess文件后,保存并关闭,然后在浏览器中访问网站,查看配置是否生效,如果发现问题,可以根据Apache的错误日志进行排查。
五、相关问题与解答:
Q1:.htaccess文件有什么作用?
A1:.htaccess文件主要用于配置Apache服务器,实现URL重写、访问控制、缓存设置等功能,通过简化Apache服务器的配置,提高管理效率。
Q2:如何禁用.htaccess文件?
A2:要禁用.htaccess文件,可以在Apache的配置文件(httpd.conf或apache2.conf)中注释掉LoadModule rewrite_module modules/mod_rewrite.so这一行,然后重启Apache服务器。
Q3:如何删除.htaccess文件?
A3:要删除.htaccess文件,可以使用文本编辑器将其内容清空,然后保存并关闭,或者直接在终端或命令提示符中执行以下命令:rm /path/to/your/.htaccess,注意将路径替换为实际的文件路径。
21 个非常有用的 .htaccess 提示和技巧
21 个非常有用的 .htaccess 提示和技巧 - OSCHINA - 中文开源技术交流社区
二、隐藏php后缀
默认情况下,服务器的文件扩展名是由服务器的配置决定的,一般情况下会明示的展示出来。可以在nginx或apache等服务器中修改伪静态规则来隐藏php后缀。
- Apache服务器
在Apache服务器中,隐藏php后缀的伪静态设置非常简单,只需要通过修改.htaccess文件即可。实现方法如下:
先启用rewrite模块:
1 |
|
然后添加这些重写规则到.htaccess文件中:
1 2 |
|
当用户访问不带.php扩展名的地址时,服务器会自动在后面加上.php扩展名,并重定向到对应的文件。如果需要隐藏其他的文件扩展名,只需将php改成其他的扩展名即可。
-RewriteRule pattern replacement [flag]:根据指定的模式匹配URL,并执行相应的替换操作,pattern是URL模式,replacement是替换后的URL,flag是可选参数,用于控制重写规则的行为(如L标志表示最后一条规则)。
PHP利用htaccess文件实现伪静态(Apache mod_rewrite)phpstudy apache设置伪静态_qq62d621dccf0ca的技术博客_51CTO博客