我认为基本的mod_rewrite设置需要帮助

问题描述

|| 我在家中运行自己的服务器。我正在尝试执行mod_rewrite,但似乎无法正常工作。 说我的网址是\“ http://www.site.com/ \”。我设置了一个用户,其public_html目录用于服务页面;假设url为\“ http://www.site.com/~myUser/theDirectory/ \”。我想做的是设置它,以便当您键入\“ http://www.site.com/theDirectory/ \”时,它实际上将为\“ http://www.site.com”以外的页面提供服务/〜myUser / theDirectory / \“,但看起来它来自\” http://www.site.com/theDirectory/ \“。我编辑了/ etc / apche2 / sites-enabled / default文件,并添加了以下几行:
RewriteEngine On
RewriteRule ^theDirectory/$ /home/myUser/public_html/~myUser/theDirectory/
我还尝试了该规则的各种版本:
RewriteRule ^/theDirectory/$ /home/myUser/public_html/theDirectory/
RewriteRule ^/var/www/html/theDirectory/$ /home/myUser/public_html/theDirectory/
我还确保了重写模块已启用。起初,我收到此错误
[Fri Jun 17 18:11:35 2011] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/theDirectory
因此,我创建了该文件,现在出现此错误
[Fri Jun 17 23:15:45 2011] [error] [client xxx.xxx.xxx.xxx] Directory index forbidden by Options directive: /var/www/theDirectory/
因此,我不太确定从这里到哪里。任何和所有建议将不胜感激。感谢您抽出宝贵的时间阅读。 祝你有美好的一天 :-)     

解决方法

        将以下内容添加到您的虚拟主机配置中:
RewriteEngine on
RewriteRule ^/theDirectory(/.*)$ /home/myUser/public_html/theDirectory$1 [L]