Helicon Ape .htaccess RewriteRule 修改内容类型的解决方法问题
Workaround issue of Helicon Ape .htaccess RewriteRule from modifying Content Type
问题:
在 IIS7.5 中使用 .htaccess,使用带有最后一个 RewriteRule 的 Helicon Ape,当 Chrome 检查员查看时,它会在未注释的情况下从响应 Headers 中删除 Content-Type(参见示例下面的屏幕截图)。这发生在 /flex2gateway/ 路径应该产生 Content-Type of application/x-amf:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*/index.cfm/(.*)$ [NC]
RewriteRule ^.*/index.cfm/(.*)$ ./rewrite.cfm/ [NS,L]
RewriteCond %{REQUEST_URI} !^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|lucee|files|images|javascripts|miscellaneous|stylesheets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$) [NC]
RewriteRule ^(.*)$ ./rewrite.cfm/ [NS,L]
最后一个 RewriteRule 的结果:
应有的结果或最后一个 RewriteRule 被注释掉时的结果
我尝试了多种解决方法,包括添加以下内容,但没有解决问题:
RewriteRule ^flex2gateway/$ [NS,T=application/x-amp,L]
看起来文件夹 flex2gateway 确实存在,当您尝试获取“/flex2gateway/”路径时,它会尝试 return 目录列表。
尝试为此添加规则:
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} ^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|lucee|files|images|javascripts|miscellaneous|stylesheets)(/?)$[NC]
RewriteRule ^(.*)$ ./rewrite.cfm/ [NS,L]
这将重定向到“./rewrite.cfm/$1”脚本。将此更改为您的首选目标。
我终于弄明白了,当然这是一个简单的修复!
只需将 jakarta|
添加到 RewriteCond
模式:
RewriteCond %{REQUEST_URI} !^.*/(jakarta|flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|lucee|files|images|javascripts|miscellaneous|stylesheets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$) [NC]
ColdFusion 10 现在使用 /jakarta/isapi_redirect.dll
处理 flex2gateway
路径。
问题:
在 IIS7.5 中使用 .htaccess,使用带有最后一个 RewriteRule 的 Helicon Ape,当 Chrome 检查员查看时,它会在未注释的情况下从响应 Headers 中删除 Content-Type(参见示例下面的屏幕截图)。这发生在 /flex2gateway/ 路径应该产生 Content-Type of application/x-amf:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*/index.cfm/(.*)$ [NC]
RewriteRule ^.*/index.cfm/(.*)$ ./rewrite.cfm/ [NS,L]
RewriteCond %{REQUEST_URI} !^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|lucee|files|images|javascripts|miscellaneous|stylesheets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$) [NC]
RewriteRule ^(.*)$ ./rewrite.cfm/ [NS,L]
最后一个 RewriteRule 的结果:
应有的结果或最后一个 RewriteRule 被注释掉时的结果
我尝试了多种解决方法,包括添加以下内容,但没有解决问题:
RewriteRule ^flex2gateway/$ [NS,T=application/x-amp,L]
看起来文件夹 flex2gateway 确实存在,当您尝试获取“/flex2gateway/”路径时,它会尝试 return 目录列表。
尝试为此添加规则:
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} ^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|lucee|files|images|javascripts|miscellaneous|stylesheets)(/?)$[NC]
RewriteRule ^(.*)$ ./rewrite.cfm/ [NS,L]
这将重定向到“./rewrite.cfm/$1”脚本。将此更改为您的首选目标。
我终于弄明白了,当然这是一个简单的修复!
只需将 jakarta|
添加到 RewriteCond
模式:
RewriteCond %{REQUEST_URI} !^.*/(jakarta|flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|lucee|files|images|javascripts|miscellaneous|stylesheets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$) [NC]
ColdFusion 10 现在使用 /jakarta/isapi_redirect.dll
处理 flex2gateway
路径。