Mod 重写调整以忽略资产目录
Mod Rewrite tweak to ignore asset directories
我正在使用 IIS 在 Windows 上配置表达式引擎并安装了 ISAPI v3 Rewrite。
部分有效。主站点和子页面可以工作,但需要修改,因为一些网页资产存储在类似命名的目录中。
推荐的 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/ [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?/ [L]
例如,URL http://oursite.example.com/abc 有效。
子页面大部分都在工作,我怀疑这确实适用于任何页面,但我在子页面上注意到它。它删除 index.php 和大部分负载,例如 http://oursite.example.com/abc/subdept/page/
但是我们的开发人员将一些资产保存在名为 /uploads/abc/ 的服务器目录中,因此如果页面引用此目录,则无法加载这些资产,因为它包含相同的名称,"abc" .
因此,处理此问题的最佳方法是什么?
我猜我可以告诉它忽略 "uploads/cls" 或更正当前的 Rewrite 以便它只查看第一个 "abc"。我希望解决方案涵盖可能出现的大多数类似问题,这样我就不必继续修改它。我们有 12 个站点,我必须将解决方案应用于每个站点。
我试过的所有方法都没有用。
此外,我认为 !-f 和 !-d 会告诉它在文件或目录存在时忽略它,但似乎并没有像我预期的那样工作,因为 [=50 中的这些图像=]/确实存在。
谢谢!
--
此外,我只是想让它正常工作,我尝试在 /uploads/abc/ 目录中添加一个带有 "RewriteEngine Off" 的 htaccess 文件,但未能修复它。
我也试过在每条评论后添加这个,但没能解决:
RewriteCond %{REQUEST_URI} !^/excluded-folder/.*$
看到上述两种尝试都无法修复它,我想知道是否还有其他问题。有什么想法吗?
我的重写很好。问题原来是内部开发人员创建的表达式引擎模板中的代码。他们更新了代码,现在可以正常加载图像了。
我正在使用 IIS 在 Windows 上配置表达式引擎并安装了 ISAPI v3 Rewrite。
部分有效。主站点和子页面可以工作,但需要修改,因为一些网页资产存储在类似命名的目录中。
推荐的 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/ [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?/ [L]
例如,URL http://oursite.example.com/abc 有效。
子页面大部分都在工作,我怀疑这确实适用于任何页面,但我在子页面上注意到它。它删除 index.php 和大部分负载,例如 http://oursite.example.com/abc/subdept/page/
但是我们的开发人员将一些资产保存在名为 /uploads/abc/ 的服务器目录中,因此如果页面引用此目录,则无法加载这些资产,因为它包含相同的名称,"abc" .
因此,处理此问题的最佳方法是什么?
我猜我可以告诉它忽略 "uploads/cls" 或更正当前的 Rewrite 以便它只查看第一个 "abc"。我希望解决方案涵盖可能出现的大多数类似问题,这样我就不必继续修改它。我们有 12 个站点,我必须将解决方案应用于每个站点。
我试过的所有方法都没有用。
此外,我认为 !-f 和 !-d 会告诉它在文件或目录存在时忽略它,但似乎并没有像我预期的那样工作,因为 [=50 中的这些图像=]/确实存在。
谢谢!
--
此外,我只是想让它正常工作,我尝试在 /uploads/abc/ 目录中添加一个带有 "RewriteEngine Off" 的 htaccess 文件,但未能修复它。
我也试过在每条评论后添加这个,但没能解决:
RewriteCond %{REQUEST_URI} !^/excluded-folder/.*$
看到上述两种尝试都无法修复它,我想知道是否还有其他问题。有什么想法吗?
我的重写很好。问题原来是内部开发人员创建的表达式引擎模板中的代码。他们更新了代码,现在可以正常加载图像了。