疯狂的Mod_Rewrite - .htaccess中的代码

时间:2013-10-12 15:20:22

标签: php .htaccess mod-rewrite redirect document

我想使用htaccess文件在我的网站上写简单的重写。

来自---> http:// www.mydomain.com/404.html
到---> http:// www.mydomain.com

来自---> http:// www.mydomain.com/505.html
到---> http:// www.mydomain.com

页面403.html / 500.html和一些像这些页面一样(我认为我可以使用RegExp(s),但我试图这样做但没有成功)。

我不能做的另一件事是:

来自---> http:// www.mydomain.com/done/everything_that_is_writes_after_this_slash
到---> http:// www.mydomain.com/done

有人可以帮帮我吗?我为这个mod_rewrite发疯了!

Ps如果我有一个关联域名,例如 http:// www.mydomainassociate.com ,我只需购买一个重定向服务(无法配置htaccess文件)。
如果有人在浏览器中写下“ http:// www.mydomainassociate.com/about / ”,是否可以将此网址重定向到“ http:// www.mydomain.com/关于 / “,拜托?可以通过 http:// www.mydomain.com / 的htaccess文件来做到吗?

感谢您的耐心! 感谢您的关注! 谢谢大家!

1 个答案:

答案 0 :(得分:0)

错误页面重定向不像

那么简单
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^/[0-9]{3}.html$  / [NC,L]

[0-9]表示“任何数字”,{3}表示“正好三次”。 NC意味着大小写,所以它匹配.HTML以及.html。 L表示它是需要处理的最后一条规则,没有必要检查任何其他重定向。 ^和$标记页面的开头和结尾,因此它只匹配/123.html,而不是/bob/123.html。

第二个

RewriteRule ^/done/  /done [NC,L]

(虽然如果你真的希望它转到“/ done /”(带有斜杠),请将其更改为

RewriteRule ^/done/.+  /done/ [NC,L]

避免重定向循环。 “。”表示“任何字符”,+表示“一次或多次”。

对于问题的最后一点,您无法通过mydomain.com上的.htaccess文件从mydomainassociate.com重定向页面。除非这两个域位于同一主机/根目录下,否则这个问题没有意义吗?