【问题标题】:Apache Redirect does not work…Apache 重定向不起作用……
【发布时间】:2010-11-09 15:45:02
【问题描述】:
有时我不得不对 mod_rewrite 或者更确切地说是 Apache 的重定向感到困惑。现在我有一个简单的任务,这让我抓狂,因为我无法让它工作:
/journal/(.*) 下的所有内容现在都在/blog/(.*) 下。
这就是我现在拥有的:
RewriteEngine on
RewriteBase /
RewriteRule ^/journal/([^/]+)$ /blog/$1
如果重要的话:这是一个 drupal 安装。
【问题讨论】:
标签:
apache
drupal
mod-rewrite
redirect
【解决方案1】:
- Drupal 在
.htaccess 中有现有的重写规则。如果您将规则放在文件的顶部,Drupal 的规则可能会覆盖它们。
- 我认为您不希望在规则中使用起始
/。
- 如果您希望规则能够重定向使用旧的
/blog/ URL 的人,那您就错了。如果这就是您要执行的操作,则需要执行重定向,如下所示:
.
RewriteEngine on
RewriteBase /
RewriteRule ^journal/(.+)$ http://example.com/blog/$1 [R=301,L]
【解决方案2】:
因为你的重写基础是 / 我认为你可以省略日志前面的 /。所以试试
重写规则 ^journal/([^/]+)$ /blog/$1
此外,如果您有任何其他规则发生,您可以在语句末尾附加 [L] 以确保不会发生其他重写。