.htaccess上的mod_rewrite将主文件夹映射到子文件夹

时间:2013-09-18 17:05:08

标签: apache .htaccess mod-rewrite

我正在尝试一件简单的事情:让Apache 2.2.15响应http://myserver/myfolder/* http://myserver/myfolder/myproject/*的所有请求(myproject除外)

到目前为止,我已尝试在.htaccess上放置以下myfolder的多个变体:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^myproject
RewriteRule ^(.*)$ myproject/$1 [L]

为什么我会收到500内部错误?

2 个答案:

答案 0 :(得分:2)

你可以尝试这段代码:

RewriteBase /myfolder/

RewriteRule ^((?!myproject/).*)$ myproject/$1 [L,NC]

答案 1 :(得分:1)

你的情况失败了:

RewriteCond %{REQUEST_URI} !^myproject

所有%{REQUEST_URI} vars都有一个前导斜杠。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/myproject
RewriteRule ^(.*)$ myproject/$1 [L]

或者myproject可以在任何地方:

RewriteEngine On
RewriteCond %{REQUEST_URI} !/myproject
RewriteRule ^(.*)$ myproject/$1 [L]

如果htaccess文件位于/myfolder目录中,请尝试:

RewriteEngine On
RewriteBase /myfolder/
RewriteCond %{REQUEST_URI} !^/myfolder/myproject
RewriteRule ^(.*)$ myproject/$1 [L]