淡淡回忆 发表于 2018-11-28 13:16:24

apache和tomcat相结合使用实现伪静态

  1、使用apj代理的方式:
  配置http.conf文件


[*]
[*]DocumentRoot"/home/abc/ROOT"
[*]ServerName test.abc.com
[*]DirectoryIndex index.jsp
[*]                        
[*]            Options Indexes FollowSymLinks
[*]            AllowOverride None
[*]            Order allow,deny
[*]            Allow from all
[*]
[*]#ProxyPass /css/ !
[*]#ProxyPass /images/ !
[*]#ProxyPass /js/ !
[*]#ProxyPass /style/ !
[*]ProxyPass / ajp://localhost:50092/
[*]ProxyPa***everse/ ajp://localhost:50092/
[*]RewriteEngine On
[*]RewriteRule ^/bbs/content-(+)\.html$ ajp://www.abc.com:50092/bbs/content.jsp?id=$1
[*]

  参数解释:










[*]'last|L'(结尾规则)
[*]立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中
[*]的break命令。这个标记用于阻止当前已被重写的URL被后继规则再次重写。例如,使用它
[*]可以重写根路径的URL('/')为实际存在的URL(比如:'/e/www/')。   
[*]'proxy|P'(强制为代理)
[*]此标记使替换成分被内部地强制作为代理请求发送,并立即中断重写处理,然后把处理移交
[*]给mod_proxy模块。你必须确保此替换串是一个能够被mod_proxy处理的有效URI(比如以
[*]http://hostname开头),否则将得到一个代理模块返回的错误。使用这个标记,可以把某些
[*]远程成分映射到本地服务器域名空间,从而增强了ProxyPass指令的功能。   
[*]注意:要使用这个功能,必须已经启用了mod_proxy模块。   

  2、使用jk的方式:


[*]
[*]    DocumentRoot /home/www/ROOT
[*]    ServerName www.bac.com
[*]    JKMountFile conf/urimap_dongcom.properties
[*]    JkLogFile logs/mod_jk_dongcom.log
[*]    JkLogLevel error
[*]    Options Indexes FollowSymLinks
[*]    RewriteEngine On   
[*]    RewriteRule ^/bbs/content-(+)\.html$ /bbs/content.jsp?id=$1                         
[*]

  Apache之AllowOverride参数详解
  通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即
< Directory />
AllowOverride None
< /Directory>
  在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 &quot;.htaccess&quot; 作用域的指令都允许出现在 .htaccess 文件中。
  而对于 URL rewrite 来说,至少需要把目录设置为
< Directory /myblogroot/>
AllowOverride FileInfo
< /Directory>
  AllowOverride的参数:
  AuthConfig 允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。FileInfo 允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。Indexes 允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。Limit 允许使用控制主机访问的指令(Allow, Deny, Order)。Options[=Option,...] 允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。
  附带:ssh框架的伪静态


[*]
[*]    DocumentRoot /home/www/ROOT
[*]    ServerName www.xxx.com
[*]    JKMountFile conf/urimap_dongcom.properties
[*]    JkLogFile logs/mod_jk_dongcom.log
[*]    JkLogLevel error
[*]    Options Indexes FollowSymLinks
[*]    RewriteEngine On   
[*]    RewriteRule ^/bbs/content-(+)\.html$ /bbs/content.jsp?id=$1
[*]    RewriteRule ^/community/bbs\.html$ /community/getallcomlist.action
[*]    RewriteRule ^/community/list-(+)\.html$ /community/community.action?id=$1
[*]    RewriteRule ^/community/content-(+)-(+)\.html$ /community/getreplybytheme.action?comId=$1&themeId=$2
[*]      
[*]




页: [1]
查看完整版本: apache和tomcat相结合使用实现伪静态