在Apache中重定向禁用的URL

时间:2017-10-11 19:33:43

标签: apache .htaccess redirect mod-rewrite

我想将整个目录及其子目录从一个Apache服务器A移动到另一个Apache服务器B,然后创建从A到B的重定向。

http://server_a.com/docroot/dirhttp://server_b.com/docroot/dir

这就是我所做的:

  1. 我将dir下的文件和目录结构从A复制到B
  2. 我删除了A
  3. 上的目录dir
  4. 我在服务器A上的docroot/.htaccess中创建了一条规则,内容为
  5. Redirect permanent dir/ http://server_b.com/docroot/dir/

    但是当我转到http://server_a.com/docroot/dir/path/to/file/index.html时,即使目标网页http://server_b.com/docroot/dir/path/to/file/index.html已启动,我也会收到403 Forbidden。

    我知道Apache会读取.htaccess,因为它正确控制server_a的其他部分。我不是这些服务器上的root用户。我也尝试使用RewriteRule,结果完全相同。

    在这种情况下,我该如何创建重定向?感谢。

2 个答案:

答案 0 :(得分:0)

您需要旧网址中的前导/。像这样:

Redirect permanent "/dir" "http://server_b.com/docroot/dir/"

有关详细信息,请参阅mod_alias docs

答案 1 :(得分:0)

如果启用了mod_rewrite,则可以执行此操作

RewriteEngine On
RewriteRule ^/?docroot/dir(/.*)?$ http://server_b.com/docroot/dir$1 [R=301,L]

将它放在Document Root目录http://server_a.com/中的.htaccess文件中。

注意:

首先删除浏览器缓存。