如何从Apache服务器上的子目录重定向到动态Web根/域根?

时间:2016-08-30 02:25:04

标签: apache .htaccess redirect document-root

在Apache服务器上,我想将对某些子目录发出的任何请求重定向到Web根目录。例如,如果用户尝试转到http://www.my-domain.com/js/,我想将其重定向到http://www.my-domain.com/。我假设我需要使用.htaccess文件和mod_rewrite来执行此操作,但也许有更好的方法。

更具体地说,我想在用户向不包含索引文件的目录发出请求时重定向。但诀窍在于我不想对域URL进行硬编码以重定向到。相反,我想为web root / domain root使用一个变量,这样无论我在哪个环境中使用代码,它都可以工作。

我该怎么做?谢谢。

稍微添加了我的问题,我在.htaccess文件中尝试了以下两种方法,但都没有用。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ %{HTTP_HOST} [L]
</IfModule>

上面给了我一些奇怪的Apache错误并且没有重定向。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ %{DOCUMENT_ROOT} [L]
</IfModule>

这已重定向到根目录页面,但未更改URL。

1 个答案:

答案 0 :(得分:0)

我能够找到自己问题的答案。以下作品:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ / [L,R]
</IfModule>