开发者

How to make a catch-all handler in an .htaccess file?

I want to create a rule at the end of an .htaccess file that catches everything that failed to match up until then.

How can I do that?

P.S. I've already tried everything :) Actually, I haven't, but it sure seems like it!

Update: Some people are replying with RewriteRule ^.*$ or an equivalent. This does not work! It will match everything including the other 'go开发者_Python百科od' URLs.


There are actually some good answers here already, but you have responded with...

But then this matches everything including the good stuff.

This is because you aren't telling mod_rewrite to stop processing on a match. To do this, use the "L" tag after each rule, which tells mod_rewrite that "If this rule is matched, stop processing any further rules".

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

You need to put this after EACH rule. Then, when you put the catch all at the end, it will only be hit if no other rule has been matched.

NOTE: if you are ALSO serving up resources that are not rewritten, like CSS, images, javascript files - you are honestly better off not catching all as you wouldn't want to rewrite their locations.


It sounds like you want to look at the RewriteRule directive. Quie possibly something similar to the following:

RewriteRule ^/(.+) {target}

This will match at the root URL (/) and redirect it to the {target} url.


RewriteRule .* page.php [L] ?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜