重写到上一个文件夹

时间:2017-05-16 14:14:42

标签: php apache .htaccess mod-rewrite

我曾经有过这样的结构:

mysite (root) L private L login.php L logout.php L db L manage_db.php L one-client.com L other-client.com L uploads L public L assets, etc.

但现在已经改变了:

mysite (root) L private L app-core (new folder) L login.php L logout.php L db L manage_db.php L one-client.com L other-client.com L uploads L public L assets, etc.

我需要的是重写网址,以便能够从mysite.com/private/login而不是mysite.com/private/app-core/login访问登录文件。我试过这个但是没有用:

RewriteRule ^private/app-core/(.*)$ /private/$1 [L,NC,R=302]

1 个答案:

答案 0 :(得分:1)

这是你的规则:

RewriteRule ^private/app-core/(.*)$ /private/$1 [L,NC,R=302]

这条规则实际上是反过来的。您可以使用此规则将旧的/private/login网址更改为其中包含/app-core的新网址一组指定的网址

RewriteRule ^private/(?!app-core|one-client\.com|uploads)(.*)$ /private/app-core/$1 [NC,L]

这将执行正确的重定向。

(?!app-core)为负面预测,这意味着我们在app-core

之后没有/private/

确保在测试前清除浏览器缓存。