我现在处于危机中,我覆盖了我的.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)跳过此规则而不使用它...
答案 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规则,将其他查询重定向到您的框架。