2010-07-22 63 views
0

编辑:下面.htaccess重定向和变量?

好的代码有问题,我得到一个网页,上面写着“该页面没有正确重定向”。这是如果有人试图访问/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的呢?

回答

2

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

RewriteEngine On 

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

您当前的规则总是匹配,所以它执行重定向的无数次,和你结束了这个错误。

1

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

您想了解与正则表达式组的RewriteRule反向引用的部分由$ N引用。

对于你的榜样,我觉得这是你自己的预期:

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

好的...仍然有一些问题...我编辑我的帖子上面,以显示我迄今为止所做的... – KarmaKarmaKarma 2010-07-22 18:07:15