.htaccess将域中的所有页面redirect到同一个域中除root,/index.html,/index.php

我已经search并尝试了我find的一切,似乎没有什么工作是正确的。 我想要做的是:

  • 将所有页面从域(domain.com)redirect到同一个域内的一个目录(domain.com/dir或domain.com/dir/index.php);

不过,我不想redirect:

  • domain.com/index.php;
  • domain.com;
  • www.domain.com
  • 显然,所有页面将redirect到的目录(domain.com/dir)。

我想用.htaccess来做这个,因为它似乎是最明显的select – 我只是不太熟悉.htaccess脚本,因为我想成为。 任何帮助将非常感激。 非常感谢!

首先, 不要使用.htaccess

一般来说,尽可能避免使用.htaccess文件。 您可能会考虑放入.htaccess文件的任何configuration都可以在您的主服务器configuration文件的一个部分中进行。

把它放在你的<VirtualHost>

 RewriteEngine On RewriteRule !^(/|/index\..+|/dir/.*)$ /dir%{REQUEST_URI} [R=301,L] 

或者,如果您坚持使用.htaccess即使在审查了关于此问题的Apache文档之后,您也需要从匹配中除去前导斜杠并replacestring:

 RewriteEngine On RewriteRule !^(|index\..+|dir/.*)$ dir%{REQUEST_URI} [R=301,L]