使用.htaccess来重写地址使得所有请求都经过某个文件

Apache 2016年2月15日

起源

最近在写UUMS(通用用户管理程序)的时候想要让所有请求都经过同一个文件,譬如route.php,起到预处理请求的作用。查了一下资料把带地址的请求(即//example.com/UUMS/auth/login之类的)给用mod_rewrite写好了,但是当直接访问//example.com/UUMS/时却会出404错误,表示压根就没被重写。后来突然想到能不能通过改默认页面来进行重写,结果发现成功了。地址重写能够预处理请求,也能编写一个自己的简单框架。发上来分享一下。

代码

(放进程序根目录的.htaccess文件中,需要Apache服务器才能重写)

#不带地址的重写
DirectoryIndex route.php?address=

#带地址的重写
RewriteEngine on
RewriteBase /UUMS/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ route.php?address=$1 [QSA,L]

 

本文所有内容都是原创的,遵守CC BY-NC-SA 4.0协议,版权归IX Network Studio所有。转载务必注明出处。

欢迎提出对本文的建议以及意见。欢迎关注我的博客,获取最新的服务器评测以及技巧教程!

Tags

Howard Liu

在读大学生,平常使用窝窝屎提高血压和听网课使自己更快入睡。

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.