重定向页面,同时保留虚构的子目录

时间:2016-12-09 21:27:45

标签: regex apache .htaccess mod-rewrite url-rewriting

我的网站根目录中有一个文件user.php。要访问用户的页面,您需要访问/user/foo-bar,其中foo-bar是用户名。

我的目标是:

  • mysite.com/user重定向到index.php
  • 的根目录
  • mysite.com/user/foo-bar重写为/user?name=foo-bar

这是我尝试过的:

Options +MultiViews
RewriteEngine On
RedirectMatch   ^user/?$       /
RewriteRule     ^user/(.+)$    user?name=$1

mysite.com/user不会重定向,mysite.com/user/foo-bar之类的网页也不会有查询字符串数据。

1 个答案:

答案 0 :(得分:1)

关闭MultiViews,不要将RedirectMatchmod_rewrite规则混合,并将代码设为:

Options -MultiViews
RewriteEngine On

RewriteRule ^user/?$ / [L,NC,R=301]

RewriteRule ^user/(.+)$ user.php?name=$1 [L,QSA,NC]