URL重写所有损坏

时间:2012-09-10 17:15:31

标签: apache mod-rewrite url-rewriting rewrite

我现在处于危机中,我覆盖了我的.htaccess文件,该文件有6个月前我做过的很多URL重写。现在我必须重做它们,因为如果没有它,我无法让我的网站的一半工作。

我有一个我需要更改的列表,也许他们都使用相同的方法,也许其中一些没有,这里是一个快速列表......

Old: http://i.website.com/(Anything)
New: http://www.website.com/images/(Anything)

然后我需要做到这一点:

Old: http://www.website.com/images/(Anything)
New: http://www.website.com/images.php?id=(Anything)

呃,这些是让我失望的两个主要因素......我真的需要这些,因为这些链接已被打破,我现在离线超过100k图像:(​​

由于

编辑:

此外,我的htaccess底部还有我的框架:

RewriteRule .* index.php/$0 [PT]

我需要第二次重写规则(images.php one)跳过此规则而不使用它...

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

RewriteCond %{HTTP_HOST} ^i.website.com$
RewriteRule ^(.+)$ http://www.website.com/images/$1 [R]

RewriteRule %{HTTP_HOST} ^www.website.com$
RewriteRule ^images/(.+)$ /images.php?id=$1 [L]

第一个条目检查请求的主机是i.website.com,并将[R]重定向到新的URL。接下来检查所请求的主机是www.website.com,然后匹配images/路径中的任何内容并按照您的请求重写URL,[L]告诉它不要进行进一步处理。

遵循您提到的catch-all规则,将其他查询重定向到您的框架。