跳至正文

Nginx 二级动态目录全站跳转的伪静态规则

  • 运维

github.com 等网站为每一位用户建立了二级目录,网址路劲简洁漂亮,如:

user-a 用户:https://github.com/user-a
user-b 用户:https://github.com/user-b
user-c 用户:https://github.com/user-c

刚好手上一个项目需要实现这一的跳转,通过以下方法实现了二级动态目录的全站跳转:

根目录建立文件夹

在根目录下新建一个 “app” 文件夹,把程序文件全放在 app 文件夹内;

文件夹名称可随意命名,修改文件夹名称只需修改下方伪静态规则的目录名称即可。

创建伪静态规则

# 根目录下的其它文件夹需单独建立规则,并且写在前面
rewrite "/assets/(.*)$" /assets/$1 last;

# 首页规则,一般放在倒数第二行
rewrite "^/([a-zA-Z0-9_\-]{0,})$" /app/ last;

# 其它目录规则,这行放在规则末尾
rewrite "^/([a-zA-Z0-9_\-]{0,})/(.*)$" /app/$2 last;

PHP捕获动态二级目录名称

全站php页面捕获动态二级目录名:

$HTTP_URL_array = explode('/', $_SERVER['REQUEST_URI']);
$SECOND_DOMAIN = $HTTP_URL_array[1];

echo $SECOND_DOMAIN;