.htaccess 将域中的所有页面重定向到同一域中的目录,但根目录、/index.html、/index.php 除外

.htaccess 将域中的所有页面重定向到同一域中的目录,但根目录、/index.html、/index.php 除外

我搜索并尝试了所有能找到的方法,但似乎没有什么效果。我想做的是:

  • 将某个域(domain.com)中的所有页面重定向到同一域内的目录(domain.com/dir 或 domain.com/dir/index.php);

但是,我不想重定向:

  • 域名.com/index.php;
  • 域名.com;
  • www.域名.com
  • 并且显然所有页面都将重定向到的目录(domain.com/dir)。

我想使用 .htaccess 来执行此操作,因为它似乎是最明显的选择——我只是不太熟悉 .htaccess 脚本。任何帮助都将不胜感激。提前致谢!

答案1

首先,不要使用.htaccess

一般情况下,应尽可能避免使用 .htaccess 文件。任何您想放入 .htaccess 文件的配置都可以在主服务器配置文件的某个部分中有效地完成。

将其放入您的<VirtualHost>

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

或者,如果您在查看了有关此事的 Apache 文档后仍然坚持使用.htaccess,那么您将需要从匹配和替换字符串中删除前导斜杠:

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

相关内容