Mod rewrite apache url重写不起作用,但重定向起作用,为什么?

Mod rewrite apache url重写不起作用,但重定向起作用,为什么?,mod-rewrite,apache,Mod Rewrite,Apache,我使用的是重新打包的apache版本,称为IHS(IBMHTTP服务器)。基本上与ApacheWeb服务相同,但具有其他功能。我试图实现的是应用重写规则来隐藏带有缩短url的查询字符串的复杂url 最初,当我第一次用“R”标志测试它时,它工作得很好。它能够通过redirecdt将模式和响应与适当的长url匹配到最终url 例如:->标题文本=ABC和类别ID=123 但在我远程设置了“R”标志后,我的重写失败,并显示消息“File not exist:/opt/IBM/HTTPServer/ht

我使用的是重新打包的apache版本,称为IHS(IBMHTTP服务器)。基本上与ApacheWeb服务相同,但具有其他功能。我试图实现的是应用重写规则来隐藏带有缩短url的查询字符串的复杂url

最初,当我第一次用“R”标志测试它时,它工作得很好。它能够通过redirecdt将模式和响应与适当的长url匹配到最终url

例如:->标题文本=ABC和类别ID=123

但在我远程设置了“R”标志后,我的重写失败,并显示消息“File not exist:/opt/IBM/HTTPServer/htdocs/dmcst/webapp”。我试图在不给用户完整url的情况下显示缩短url。/webapp/。。不是本地路径,而是其他远程路径。为什么“重写”而不是“重定向”会失败


重新启动发动机 别名/wcsstore”/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_-dmcwcsst\u cell/WC_-dmcwcsst.ear/Stores.war“ 别名/wcs“/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_-dmcwcsst_-cell/WC_-dmcwcsst.ear/CommerceAccelerator.war” 别名/静态“/opt/IBM/content”


重写规则^/us/([a-z].)/([0-9].)/?$/webapp/wcs/stores/servlet/AcquisitionBrowseView?langId=-1&storeId=10001&catalogId=10051&headerText=$1&categoryId=$2[NC,R,L]

来自WebSphere文档:

重写规则定义代理服务器重写URL的方式。响应 被目标服务器重定向的数据通常返回302 带有位置标头的状态代码,该位置标头定义 客户端应重定向到。如果 目标服务器不知道代理服务器。重定向的URL为 修改为正确地将客户端指向代理服务器,而不是 直接发送到客户端可能看不到的目标服务器。使用 以下属性用于配置URL的URL重写规则 代理服务器

避免麻烦:代理服务器只支持重写重定向的 响应。因此,以下设置仅适用于 重定向的响应。这些设置不适用于请求,因为 代理服务器不支持请求的URL重写

我也有同样的问题

看起来插件对mod_rewrite不友好

模块声明(loadmodulewas_ap22_module…)也被移动到httpd.conf的底部


在我的例子中,如果我读得正确,WAS不支持透明地转发到目标URL的“重写规则”,而是使用“重定向301/302”?这不可能是对的。。。!在使用ApacheHTTPD的正常场景中,我应该能够根据重定向(301/302)或重写(隐藏的后端请求/重定向)的愿望执行重定向重写,如果一个可行,那么另一个也应该可行,您同意吗@paulsm4