使用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]
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...