Apache 如何使用.htaccess将请求重定向到子目录?

Apache 如何使用.htaccess将请求重定向到子目录?,apache,.htaccess,lamp,Apache,.htaccess,Lamp,我正在运行一个基本测试,以确保服务器支持.htaccess。不幸的是,我们遇到了一点问题: 这是网站的结构: / .htaccess /试验 /test/index.html 我要做的是在用户点击根目录时显示(/test/index.html) 我正在使用以下.htaccess脚本: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ test/$1 [L] RewriteRule (.*) test

我正在运行一个基本测试,以确保服务器支持.htaccess。不幸的是,我们遇到了一点问题:

这是网站的结构:

  • /
  • .htaccess
  • /试验
  • /test/index.html
我要做的是在用户点击根目录时显示(/test/index.html)

我正在使用以下.htaccess脚本:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^$ test/$1 [L]
   RewriteRule (.*) test/$1 [L]
</IfModule>

重新启动发动机
重写规则^$test/$1[L]
重写规则(.*)测试/$1[L]

因此,我得到了内部服务器错误。我做错什么了吗?

您将收到500个错误,因为在第一种情况下$1未定义。将其更改为:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^$ test/$1 [L]
   RewriteRule ^(.*) test/$1 [L]
</IfModule>

重新启动发动机
重写规则^$test/$1[L]
重写规则^(.*)测试/$1[L]

您将收到500个错误,因为在第一种情况下$1未定义。将其更改为:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^$ test/$1 [L]
   RewriteRule ^(.*) test/$1 [L]
</IfModule>

重新启动发动机
重写规则^$test/$1[L]
重写规则^(.*)测试/$1[L]
把它放在“test”目录中&它应该可以做到这一点


把它放在“test”目录中&它应该可以做到这一点

对不起,请原谅我的错误-我对Linux世界有点陌生。太棒了!我该如何让它也适用于文件?这条规则似乎只是做了一个目录?在文件的情况下,您希望如何准确地重定向?例如,如果我请求www.domain.com/file.html,.htaccess将重写为/test/file.html(但显然对于所有形式的文件,包括图像等),对不起,请原谅我的错误-我对Linux世界有点陌生。太棒了!我该如何让它也适用于文件?该规则似乎只是做了一个目录?在文件的情况下,您希望如何准确地重定向?例如,如果我请求www.domain.com/file.html,.htaccess将重写为/test/file.html(但显然适用于所有形式的文件,包括图像等)