我是网址重写的新手,并且不知道如何执行此操作:
/ex1
之后的所有网站都应重定向到index.php
我目前的剧本:
RewriteEngine On
RewriteRule ^(ex1|ex2)/?$ index.php [NC,L]
但这只会重写example.com/ex1/
而不是example.com/ex1/abcd
提前致谢;)
答案 0 :(得分:2)
接近完美,试试这个:
RewriteEngine On
RewriteRule ^(ex1|ex2)/? index.php [NC,L]
注意:正则表达式中的尾随$
已被删除。这就是为什么只有精确的网址example.com/ex1
和example.com/ex1/
匹配,但不再匹配的原因。尾随$
将搜索锚定到行尾,因此这里的URL结尾。因此,如果最后匹配的字符(在这种情况下为ex1
或ex1/
)之间存在任何内容,则表达式将不匹配。
另一个更一般的注意事项:此模式仅适用于.htaccess
样式文件,但不适用于普通主机配置。在某些情况下,此类文件会派上用场,例如,如果您没有对http服务器的管理控制权。但一般情况下,您应该始终更喜欢将这些内容放在http服务器主机配置中,而不是使用.htaccess
样式文件。原因是这些文件非常容易出错,很难调试,最后真的减慢了服务器速度。