【问题标题】:.htaccess redirection and variables?.htaccess 重定向和变量?
【发布时间】:2010-07-22 16:49:06
【问题描述】:

编辑:下面的代码有问题

好的,我收到一个页面,上面写着“页面重定向不正确”。这是如果有人试图访问 /files/protected/file.jpg。我正在尝试将其重定向到 /myfiles/file.jpg,但我得到了那个错误......

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /myfiles/
  RewriteRule ^(.*)$ $1 [L,R=301]
</IfModule>

本质上,我正在尝试弄清楚如何添加将保留部分路径的重写条件。例如,如果用户尝试访问目录中的文件,它会以该文件名作为参数重定向到另一个 url。

因此,如果用户访问:mysite.com/protected/file.pdf,它将重定向到 mysite.com/okay/file.pdf

这是我可以使用 .htaccess 的东西吗?

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    您需要将您的.htaccess 文件放在您的站点根目录中。然后,假设您想要一个外部重定向,它应该包含以下内容:

    RewriteEngine On
    
    RewriteRule ^files/protected/(.*)$ myfiles/$1 [R=301,L]
    

    您当前的规则始终匹配,因此它会无限次执行重定向,最终您会遇到该错误。

    【讨论】:

      【解决方案2】:

      http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

      您想要关于 RewriteRule 反向引用的部分,其中包含由 $N 引用的正则表达式组。

      对于您的示例,我认为这就是您的意图:

      RewriteRule ^(mysite\.com/)protected(/.*) $1okay$2
      

      【讨论】:

      • 好的...仍然有一些问题...我正在编辑上面的帖子以显示到目前为止我所做的...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多