mod_rewrite以显示旧URL进行索引

时间:2018-11-01 03:28:41

标签: apache mod-rewrite

我收到了OHS(Apache),并尝试在某个位置进行重定向:

我的目标是重定向呼叫...
上:http://example.com:23123/myApp/webapp-new/myApp_details
到:http://example.com:23123/myApp/webapp-new/index.html

但是浏览器仍然应该显示URL“ http://example.com:23123/myApp/webapp-new/myApp_details

我遵循的基本方法基本上可以正常工作...

 <Location /myApp>
  SetHandler weblogic-handler
  WLLogFile /opt/myApp_logs/myApp.log
  Debug OFF
  WebLogicHost 127.0.0.1
  WebLogicPort 23123
  WLSocketTimeoutSecs 60

  RewriteEngine On
  RewriteBase /myApp
  RewriteRule  "(.*)/myApp_details$"  "/index.html"  [PT, L]
 </Location>

但这是错误的重定向/重写。 但也尝试过:

  RewriteRule  "(.*)/myApp_details$"  "/index.html"  [PT, L]
  RewriteRule  "(.*)/myApp_details$"  "$1/index.html"  [PT, L]
  RewriteRule  "(.*)/myApp_details$"  "/index.html"  [PT, L]

...我得到了一些:404未找到,无法处理请求或重定向到错误的URL 重写它的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我最终通过以下方法解决了这个问题:

  • 将重写语句移动到“位置”部分的外部(建议不要将其放在其中)
  • 没有使用某些正则表达式/模式(保持简单)
  • 添加了以下内容(没有RewriteBase,确切的URL)(保持简单)

    RewriteEngine On
    RewriteRule  "/myApp/webapp-new/myApp_details"  "/myApp/webapp-new/index.html"  [PT,L]