如何解决使用mod_rewrite重定向整个目录作为我的主目录
| 我一直在寻找答案的方法,我自己尝试了许多技巧,但无济于事,所以我将我的问题带给所有明智的人。 我已经准备好一个网站。该网站的全部内容位于网站的主“ www”目录中。因此,现在当我访问www.mywebsite.com/main时,它将转到www / main.PHP文件。但是,我想将网站的全部内容移到www目录内的新文件夹中,我将其称为\“ ts \”。所以现在,我的main.PHP文件将在www / ts / main.PHP中 但是,我遇到的问题是我希望所有URI都保持不变,因此我想告诉服务器,现在可以在www / ts / main.PHP上找到www.mywebsite.com/main,而不是以前的位置( www / ts),而且所有后续内容现在也可以在www / ts中找到,而不是www / ts。 我想我将在www /目录中需要一个.htaccess文件,该文件告诉服务器www.mywebsite.com的绝对路径位于www / ts /,但是我不确定该怎么做。我的新www / ts /目录中也有一个.htaccess文件,该文件已经重定向了许多URI,但是我想我需要告诉服务器该目录中的所有文件都需要忽略/ ts / URI,我仍然不知道该怎么做。 如果有人能够指出正确的方向,我将有很大的义务。谢谢。 编辑:我在共享服务器上,所以我无权访问任何conf文件,因此我需要一个涉及mod_rewrite的解决方案。谢谢。解决方法
您只需要指定VirtualHost的DocumentRoot在哪里。
检查您的Virtualhost的Apache配置(它可能是默认配置,但您可以为命名站点创建一个)。并检查
DocumentRoot
标签。
如果是这样的话:
DocumentRoot /foo/bar/www
将其更改为:
DocumentRoot /foo/bar/www/ts
就这样。
编辑:
通过仅访问.htaccess的限制,并且如果我们假设您将仅限制一个DNS名称的新文件夹重定向(就好像您创建了一个子目录,那么以后可能要创建其他一些子目录),这应该可以工作:
RewriteEngine On
# limit this rule on the www.mywebsite.com DNS name requested
RewriteCond %{SERVER_NAME} ^www\\.mywebsite\\.com$
# limit infinite recursion,when filename is ok...
# no,in fact not # RewriteCond %{REQUEST_FILENAME} !-f
# well this one is better,no loop for mod_rewrite,even on 404
# the rule is applied only once
RewriteCond %{ENV:REDIRECT_STATUS} ^$
# so here\'s the rule,map the requested file on the filesystem in ts subdir
RewriteRule ^(.*)$ /var/www/ts/$1 [L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。