我工作的网站过去有这两页:
http://www.africananimals.com/stripes/zebras
和
http://www.africananimals.com/news/zebras
(这些不是实际的域名,只是示例。)
最近重新组织了目录结构,并且相同页面的URL更改为:
http://www.africananimals.com/zebras/stripes
和
http://www.africananimals.com/zebras/news
我想要一个mod_rewrite规则(或者资源消耗较少的替代方法,例如Redirect命令或类似的东西),让那些将这两个页面都标记为旧URL的爱好者受益。我需要这个适用于http // www.africananimals.com和http // africananimals.com / URL版本。
我的解决方案是:
Redirect /stripes/zebras http://www.africananimals.com/zebras/stripes
Redirect /news/zebras http://www.africananimals.com/zebras/news
- 但我不确定我是否正确。在正则表达式上很糟糕,并且对.htaccess只有肤浅的理解,我一定会感激一些指导。
答案 0 :(得分:1)
如果请求不包含单词zebras,它甚至不会尝试这个正则表达式(保存cpu)。这将在开始时交换条纹或斑马,并在斑马的末尾替换它。
RewriteEngine On
RewriteCond %{REQUEST_URI} zebras
RewriteRule ^(stripes|news)/zebras/?$ zebras/$1 [R,L]
> /?会使它也接受任何以/结尾的uri,就像目录一样。