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

Apache Feb 15, 2016

起源

最近在写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所有。转载务必注明出处。

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

标签

Howard Liu

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