我一直在各种网站上查看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文件和图像等,我感觉这就是它让我绊倒。
任何指针都会受到大力赞赏!感谢
答案 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)!)