2012-01-07 174 views
2

我知道这不是原来的问题,但我已经阅读了几个帖子和问题,仍然无法弄清楚。Apache和重写/重定向到htaccess到不同的文件夹

我在localhost(apache服务器)上,默认服务器home在/ var/www中。有一个文件夹'项目'与几个子文件夹,其中之一被称为web与index.php文件。所以现在如果我想去索引,我需要使用完整的url localhost/project/web /。

我想使它更好,这样如果你去localhost /项目,你要么重定向到本地主机/项目/网络/或URL保持不变,但它的工作原理(遗憾的是这个天真的公式)。

在.htaccess我改变了目录索引,但随后的所有链接(因为它们是相对的)不工作。

我尝试这样做的.htaccess在/ var/WWW /项目:

RedirectMatch permanent ^/$ ./web/ 
<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 
Options -Indexes 

但它不工作,去到localhost /项目试图列出项目目录(这是不允许的,由于选项-Indexes ,这是我想要的)。我需要它是独立于URL中的“本地主机”的,因为它必须在任何地方工作(如果的.htaccess是允许的)

感谢您的任何意见

回答

0

RedirectMatch像mod_rewrite的确实没有一个基地。即使它在/项目目录中的htaccess文件,你需要完整的URI:

RedirectMatch permanent ^/project/$ /project/web/ 

如果你想让它去/project/web/index.php 没有浏览器重定向(指在浏览器地址栏的地址留在本地主机/项目/),你需要在内部重写URI使用mod_rewrite:

RewriteEngine On 
RewriteRule ^$ web/index.php [L] 

注意mod_rewrite的使用基本URI的htaccess文件是(但“前缀“或删除前导斜杠)。

+0

谢谢!第一个工作正常。 rewriteengine引发了一些“内部服务器错误”,但没关系,第一个没问题 – ladar 2012-01-07 21:00:52

相关问题