apache url重写不工作但重定向工作,为什么?

时间:2012-03-24 00:46:45

标签: mod-rewrite apache

我正在使用一个名为IHS(IBM HTTP Server)的重新打包版本的apache。基本与apache web服务相同,具有其他功能。我想要完成的是应用重写规则来隐藏带有缩短网址的查询字符串的复杂网址。

最初当我第一次使用'R'Flag进行测试时,它可以正常工作。它能够通过redirecdt将模式和响应与正确的长URL匹配到最终URL。

例如:https://example.com/us/ABC/123 - > https://example.com/webapp/ HEADERTEXT = ABC&安培;的categoryId = 123

但是在我远程“R”标志之后,我的重写失败,消息为“文件不存在:/ opt / IBM / HTTPServer / htdocs / dmcst / webapp”。我试图显示缩短的网址而不给用户完整的网址。 / webapp / ..不是本地路径,而是一些其他远程路径。为什么这会因“重写”而不是“重定向”而失败?


RewriteEngine on 别名/ wcsstore“/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_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”

RewriteRule ^ / us /([az]。)/([0-9]。)/?$ / webapp / wcs / stores / servlet / AcquisitionBrowseView?langId = -1& storeId = 10001& catalogId = 10051& headerText = $ 1& categoryId = $ 2 [NC,R,L]

2 个答案:

答案 0 :(得分:0)

来自WebSphere文档:

  

http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Fujpx_rewrite.html

     

重写规则定义代理服务器如何重写URL。回应   已被目标服务器重定向的通常返回302   状态代码,其中包含定义URL的位置标头   客户端应重定向到。如果是,则必须重写此URL   目标服务器不知道代理服务器。重定向的URL是   修改为正确地将客户端指向代理服务器而不是   直接到客户端可能看不到的目标服务器。使用   以下属性为a配置URL重写规则   代理服务器

     

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

答案 1 :(得分:0)

我有同样的问题

看起来WAS插件与mod_rewrite

不友好

所以WAS模块声明(LoadModule was_ap22_module ...)被移到了httpd.conf的底部

就我而言,它有所帮助