URL将所有子网站重写到主站点

时间:2015-11-08 11:54:11

标签: mod-rewrite

我是网址重写的新手,并且不知道如何执行此操作:

/ex1之后的所有网站都应重定向到index.php

我目前的剧本:

RewriteEngine On
RewriteRule  ^(ex1|ex2)/?$ index.php [NC,L]

但这只会重写example.com/ex1/而不是example.com/ex1/abcd

提前致谢;)

1 个答案:

答案 0 :(得分:2)

接近完美,试试这个:

RewriteEngine On
RewriteRule  ^(ex1|ex2)/? index.php [NC,L]

注意:正则表达式中的尾随$已被删除。这就是为什么只有精确的网址example.com/ex1example.com/ex1/匹配,但不再匹配的原因。尾随$将搜索锚定到行尾,因此这里的URL结尾。因此,如果最后匹配的字符(在这种情况下为ex1ex1/)之间存在任何内容,则表达式将匹配。

另一个更一般的注意事项:此模式仅适用于.htaccess样式文件,但不适用于普通主机配置。在某些情况下,此类文件会派上用场,例如,如果您没有对http服务器的管理控制权。但一般情况下,您应该始终更喜欢将这些内容放在http服务器主机配置中,而不是使用.htaccess样式文件。原因是这些文件非常容易出错,很难调试,最后真的减慢了服务器速度。