使用mod_rewrite(ajaxplorer)无意中将root重写为子目录

时间:2012-06-08 17:45:59

标签: apache mod-rewrite pydio

我一直在各种网站上查看mod_rewrite示例几个小时,并且在成功之前已经多次使用它了...但我现在正在尝试一些新的东西并且不能在我的生活中得到它它工作!

我正在使用名为AjaXplorer的PHP文件管理器工具,我将它放在服务器/ajaxplorer-core-4.0.4根目录的子目录中。当我转到我的网站http://domain.com/的根目录时,我希望它无形地重定向到/ajaxplorer-core-4.0.4文件夹(但仍然在地址栏中显示根域)。

我仍然希望能够正常输入路径上的其他文件/目录,只需输入路径即可。

我认为这是可能的吗?看起来相对简单,但我无法让它发挥作用。

AjaXplorer似乎从/ajaxplorer-core-4.0.4/plugins加载js文件和图像等,我感觉这就是它让我绊倒。

任何指针都会受到大力赞赏!感谢

2 个答案:

答案 0 :(得分:10)

幸运地在另一个答案中找到了它:)

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?site.com$ 
RewriteCond %{REQUEST_URI} !^/subdir/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /subdir/$1 
RewriteCond %{HTTP_HOST} ^(www.)?site.com$ 
RewriteRule ^(/)?$ subdir/index.php [L]

答案 1 :(得分:0)

如果这还不够:

两个提示:

如果您在托管环境中(=如果它是您自己的服务器可以修改虚拟主机,不仅仅是.htaccess文件),尝试使用RewriteLog指令:它可以帮助您找出这些问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

我最喜欢检查regexp的工具:

http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)