.htaccess:重写规则无法按照我的意愿运行

时间:2015-05-08 09:45:47

标签: php apache .htaccess mod-rewrite

提前通知非技术性条款;但请记住,在发布此处之前,我确实尝试了很多解决方案。

在webroot文件夹下我有2个网站;这些是切入点:

/frontend/web/index.php
/backend/web/index.php

我的目标是

  • 访问/frontend/web/index.php开放http://domain.tld
  • 访问/backend/web/index.php开放http://domain.tld/something

这是我的webroot/.htaccess

  RewriteCond %{REQUEST_URI} !^something
  RewriteRule ^(.*)$ frontend/web/$1 [L] 
  RewriteRule ^(.*)/something$ backend/web/$1 [L] 

通过这种方式,domain.tld/正在打开/frontend/web(GOOD),但 domain.tld/something指向frontend/web/index.php而不是{{1} }}

1 个答案:

答案 0 :(得分:2)

当用于匹配htaccess文件中的规则时,会从URI中删除前导斜杠。这意味着这个正则表达式:

^(.*)/something$

永远不会匹配看起来像这样的URI:

something/...

尝试将正则表达式更改为:

RewriteRule ^something(.*)$ backend/web$1 [L]