如何在.htaccess文件中创建一个catch-all处理程序?

时间:2010-05-11 05:00:44

标签: .htaccess mod-rewrite

我想在.htaccess文件的末尾创建一个规则,该规则捕获到那时未能匹配的所有内容。

我该怎么做?

P.S。我已经尝试了一切:)实际上,我没有,但它看起来确实如此!

更新:有些人正在回复RewriteRule ^.*$或同等对象。 这不起作用!它会匹配所有,包括其他“好”的网址。

3 个答案:

答案 0 :(得分:2)

这里确实有一些很好的答案,但你已经回复了......

  

但是这样可以匹配所有内容,包括好东西。

这是因为你没有告诉mod_rewrite停止对匹配进行处理。为此,请在每个规则后使用“L”标记,告诉mod_rewrite“如果此规则匹配,则停止处理任何其他规则”。

RewriteRule ^RSS/([^/\.]+)/?$ rss.php?Page=$1 [L]

你需要在EACH规则之后加上它。然后,当你把catch全部放在最后时,只有在没有其他规则匹配时才会被击中。

注意:如果您还提供未经重写的资源,例如CSS,图像,javascript文件 - 您最好不要全部捕获,因为您不想重写它们的位置。

答案 1 :(得分:0)

听起来你想看看RewriteRule指令。可能类似于以下内容:

  

RewriteRule ^ /(。+){target}

这将匹配根URL(/)并将其重定向到{target} url。

答案 2 :(得分:-1)

RewriteRule .* page.php [L]

相关问题