Mod Rewrite tweak忽略资产目录

时间:2016-02-04 21:46:54

标签: .htaccess mod-rewrite url-rewriting rewrite

我正在使用IIS在Windows上配置Expression Engine并安装了ISAPI v3 Rewrite。

部分正常运作。主站点和子页面有效,但需要进行修改,因为某些网页资产存储在类似命名的目录中。

推荐的重写由Ellislabs is this提供,我对它进行了一些修改,以便与我们的Win 2012 IIS 8服务器一起使用:

RewriteEngine On
RewriteBase /

# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{REQUEST_URI} !/system/.* [NC]
RewriteRule (.*?)index\.php/*(.*) abc/$1$2 [R=301,NE,L]

# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ abc/index.php?/$1 [L]

例如,网址http://oursite.example.com/abc有效。

子页面大部分都在工作,我怀疑这适用于任何页面,但我在子页面上注意到它。它删除了index.php,主要是加载,例如http://oursite.example.com/abc/subdept/page/

但是我们的开发人员将一些资产保存在名为/ uploads / abc /的服务器目录中,因此如果页面引用此目录,则无法加载这些资产,因为它包含相同的名称“abc”。

因此,处理此问题的最佳方法是什么?

我猜我可以告诉它忽略“uploads / cls”或者更正当前的Rewrite,这样它只会查看第一个“abc”。我希望解决方案能够涵盖可能出现的大多数类似问题,因此我无需继续修改它。我们有12个站点,我将不得不将解决方案应用于每个站点。

我尝试的所有东西都没用。

另外,我想!-f和!-d会告诉它忽略它,如果文件或目录存在并且似乎没有像我期望的那样工作,因为/ uploads / abc /中的这些图像确实存在。

谢谢!

-

另外,只是试图让它工作,我尝试在/ uploads / abc /目录中添加一个带有“RewriteEngine Off”的htaccess文件,但无法修复它。

我还尝试在每次评论后添加此内容并且无法修复它:

RewriteCond %{REQUEST_URI} !^/excluded-folder/.*$

看到上述两种尝试都无法修复它,我想知道是否还会有其他事情发生。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我的重写很好。问题结果是内部开发人员创建的Expression Engine模板中的代码。他们更新了代码,图像现在正在加载。

相关问题