【问题标题】:mod_rewrite remapping foldermod_rewrite 重映射文件夹
【发布时间】:2013-09-25 06:58:56
【问题描述】:

我目前已经更新了我们的网站,图片文件夹名称已从/img/ 更改为/images/

我的 apache 错误日志中仍然出现 404 错误,这些错误来自试图访问旧 /img 文件夹的机器人等。

我正在尝试编写一个 mod_rewrite 规则来重定向任何访问 /img/ 的尝试以引用 /images/

这是我目前得到的:

RewriteRule ^img/?(.*)$ images/$1 [R=301,L]

但是,每当我访问 http://mysite.com/img 时,我仍然会得到我的 404 页面(而不是访问 /images 时应该收到的禁止页面)。

这是正确的吗?如果这很重要,我确实有另一个强制使用 ssl 的规则。

非常感谢

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    此规则应放在您的根文件夹中:

    Options +FollowSymLinks -MultiViews
    
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{DOCUMENT_ROOT}/images/$1 -d [OR]
    RewriteCond %{DOCUMENT_ROOT}/images/$1 -f
    RewriteRule ^img/(.*) /images/$1 [R=302,NC,L]
    

    此规则将仅重定向 http://domain.com/images 上存在的文件或文件夹。

    请记住,由于您使用的是 R=301,因此您可能已经从以前的尝试中被缓存,因此请尝试使用其他浏览器以确保其正常工作。

    请注意,我使用的是R=302,为了避免这种缓存,一旦您确认它正常工作,请将其更改为R=301

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 2017-03-09
      • 2015-09-30
      • 1970-01-01
      • 2012-06-11
      相关资源
      最近更新 更多