2011-09-01 103 views
0

我正在清理我们的网站。我正在使用ISAPI重写。我已经想出了我需要选择正在讨论的文件的正则表达式。Mod重写规则将所有pdf请求重定向到另一个位置

^(?!.*?web_content.*?).*?\.pdf

我想重定向所有PDF请求在web_content/pdf/看。所以我想要的伪规则是

将所有请求重定向到尚未请求的pdfs web_content/pdf。放弃原来的文件夹路径。 /somefolder/this/mycool.pdf ==> /web_content/pdf/mycool.pdf

我的问题是如何将我实际创建国防部重写规则?我不知道如何正确地执行替换命令。我也希望这个规则不会影响我们网站上的外部PDF链接。

回答

1

这应该工作:

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/web_content/pdf/ 
RewriteRule ^(.+\.pdf)$ /web_content/pdf/$1 [L] 

赫利的ISAPI_Rewrite V3几乎是一样的Apache的mod_rewrite(除了一些先进的东西),因此几乎是在Apache上工作的所有的规则将在这里工作也是如此。

+0

非常感谢,这应该解决我的问题。有没有一个很好的明确的参考,我可以读到这个? Apache的裁判对我来说很难理解。特别是使用规则和条件之间的反向引用。 –

+0

好问题 - 但我个人不知道 - 我通过阅读ISAPI_Rewrite文档并遵循他们的示例在实际网站上实施重写,从而了解到了这一切(http://www.helicontech.com/isapi_rewrite/doc/examples .htm)。其余的“慢慢”在修改和创建更复杂的规则并使用正则表达式进行修改之后会有所体会。我只使用官方文档和一些随机文章,其中包含Google搜索后发现的食谱/示例。 – LazyOne

+0

处理顺序流程图是令我困惑的事情。真的是Apache吗?真?。 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html –

相关问题