---- ±¾ÎÄÖ¼ÔÚÌṩÈçºÎÓÃApacheÖØÐ´¹æÔòÀ´½â¾öһЩ³£¼ûµÄURLÖØÐ´·½·¨µÄÎÊÌ⣬ͨ¹ý³£¼ûµÄʵÀý¸øÓû§Ò»Ð©Ê¹ÓÃÖØÐ´¹æÔòµÄ»ù±¾·½·¨ºÍÏßË÷¡£
Ò»¡¢ÎªÊ²Ã´ÐèÒªÓÃÖØÐ´¹æÔò
---- ÍøÕ¾µÄÉúÃüÔÚÓÚ²»¶ÏµØ½øÐиüкÍά»¤£¬¸ù¾ÝÒµÎñ·¢Õ¹µÄÐèÇó×ªÒÆ·þÎñÆ÷½øÐÐά»¤¡¢ÖØÐÂ×é֯Ŀ¼½á¹¹¡¢±ä»»URLÉõÖÁ¸Ä±äµ½ÐµÄÓòÃûµÈÇé¿öÊǾ³£·¢ÉúµÄ¡£ÎªÁËÈÿͻ§²»»áÒò´ËÊܵ½ÈκÎÓ°Ï죬×îºÃµÄ·½·¨¾ÍÊÇʹÓÃApache Rewrite Rule(ÖØÐ´¹æÔò)¡£
¶þ¡¢ÖØÐ´¹æÔòµÄ×÷Ó÷¶Î§
---- 1£®Ê¹ÓÃÔÚApacheÖ÷ÅäÖÃÎļþhttpd.confÖС£
---- 2£®Ê¹ÓÃÔÚhttpd.confÀﶨÒåµÄÐéÄâÖ÷»úÅäÖÃÖС£
---- 3£®Ê¹ÓÃÔÚ»ù±¾Ä¿Â¼µÄ¿çÔ½ÅäÖÃÎļþ.htaccessÖС£
Èý¡¢ÖØÐ´¹æÔòµÄÓ¦ÓÃÌõ¼þ
---- µ±Óû§µÄWebÇëÇó×îÖÕ±»µ¼Ïòµ½Ä³Ì¨Web·þÎñÆ÷µÄApacheÊØ»¤½ø³Ì£¬Apache¸ù¾ÝÅäÖÃÎļþÅжϸÃÇëÇóÊÇÖ÷ÅäÖû¹ÊÇÐéÄâÖ÷»ú£¬ÔÙ¸ù¾ÝÓû§ÔÚä¯ÀÀÆ÷ÖÐÇëÇóµÄURLÀ´Æ¥ÅäÖØÐ´¹æÔò£¬²¢ÇÒ¸ù¾Ýʵ¼ÊµÄÇëÇó·¾¶Æ¥Åä.htaccessÖеÄÖØÐ´¹æÔò£¬×îºó°ÑÇëÇóµÄÄÚÈÝ´«»Ø¸øÓû§¡£¸ÃÏìÓ¦¿ÉÄÜÓÐ2ÖÖ¡£
---- 1£®½«ÇëÇóÄÚÈÝÍâ²¿ÖØ¶¨Ïò(Redirect)µ½ÁíÒ»¸öURL
---- ÈÃä¯ÀÀÆ÷ÔÙ´ÎÒÔеÄURL·¢³öÇëÇó(R=301»òÕßR=302£¬ÁÙʱµÄ»òÊÇÓÀ¾ÃµÄÖØ¶¨Ïò)¡£
---- ÀýÈ磬һ¸öÍøÕ¾ÓÐÕý¹æµÄURLºÍ±ðÃûURL£¬¶Ô±ðÃûURL½øÐÐÖØ¶¨Ïòµ½Õý¹æURL£¬»òÕßÍøÕ¾¸Ä»»³ÉÁËеÄÓòÃû£¬Ôò°Ñ¾ÉµÄÓòÃûÖØ¶¨Ïòµ½ÐµÄÓòÃû¡£
---- 2£®ÓÉApacheÄÚ²¿×ÓÇëÇó´úÀí²úÉúеÄÄÚÈÝËͻظø¿Í»§[P,L]
---- ÕâÊÇApacheÄÚ²¿¸ù¾ÝÖØÐ´ºóµÄURL£¬Í¨¹ý´úÀíÄ£¿éÇëÇóÄÚÈݲ¢½«×îÖÕÄÚÈÝËͻظø¿Í»§£¬¿Í»§¶Ëä¯ÀÀÆ÷²»±ØÔÙ´ÎÇëÇó£¬ä¯ÀÀÆ÷ÖеÄURL²»»á±»ÖØÐ´£¬µ«Êµ¼ÊÄÚÈÝÓÉApache¸ù¾ÝÖØÐ´¹æÔòºóµÄURLÉú³É¡£
---- ÀýÈ磬ÔÚ¹«Ë¾·À»ðǽÉÏÔËÐеÄApacheÆô¶¯ÕâÖÖ´úÀíÖØÐ´¹æÔò£¬´úÀí¶ÔÄÚ²¿Íø¶ÎÉϵÄWeb·þÎñÆ÷µÄÇëÇó¡£
ËÄ¡¢ÖØÐ´¹æÔòÔõÑù¹¤×÷
---- ÎÒÃǼٶ¨ÔÚ±àÒëApacheʱÒѾ°Ñmod_rewrite±àÒë³ÉÄ£¿é£¬È·ÐÅÄúµÄhttpd.confÖÐÓÐLoadModule rewrite_module libexec/mod_rewrite.so£¬²¢ÇÒÔÚAddmoduleÖÐÓÐAddmodule mod_rewrite.c£¬Ôò¿ÉÒÔʹÓÃÖØÐ´¹æÔò¡£
---- µ±ÍⲿÇëÇóµ½´ïApache£¬Apacheµ÷ÓÃÖØÐ´¹æÔòÖе͍ÒåÀ´ÖØÐ´ÓÉÓû§ä¯ÀÀÆ÷Ö¸¶¨ÇëÇóµÄURL£¬×îºó±»ÖØÐ´µÄURLÈç¹ûÊÇÖØ¶¨Ïò£¬ÔòËͽ»ä¯ÀÀÆ÷×öÔÙÒ»´ÎÇëÇó£»Èç¹ûÊÇ´úÀíÔò°ÑÖØÐ´ºóµÄURL½»¸ø´úÀíÄ£¿éÇëÇó×îÖÕµÄÄÚÈÝ(Content)£¬×îºó°ÑÄÚÈÝËͻظøä¯ÀÀÆ÷¡£
Îå¡¢ºÎʱʹÓÃ.htaccessÖеÄÖØÐ´¹æÔò¶¨Òå
---- ¼ÙÈçÄú¶ÔÍøÕ¾ÄÚÈÝËùÔڵķþÎñÆ÷ûÓйÜÀíԱȨÏÞ£¬»òÕßÄúµÄÍøÕ¾ÄÚÈÝ·ÅÔÚISPµÄ·þÎñÆ÷ÉÏÍйܣ¬ÎÞ·¨¸ÄдÖ÷ÅäÖÃÎļþ£¬µ«ÊÇÄú¶ÔWebÕ¾µãÄÚÈÝËùÔÚµÄĿ¼ÓÐдȨÏÞ£¬Ôò¿ÉÒÔÉèÖÃ×Ô¼ºµÄ.htaccessÎļþ´ïµ½Í¬ÑùµÄÄ¿µÄ¡£µ«ÄúÐèҪȷ¶¨Ö÷ÅäÖÃÎļþÖжÔÄúµÄÍøÕ¾ËùÔÚµÄĿ¼¶¨ÒåÁËÏÂÃæµÄÄÚÈÝ£¬·ñÔòÄúµÄ.htaccess²»»á¹¤×÷¡£
---- < Directory /usr/local/apache/htdocs/www.abc.com> options indexes followsymLinks
---- allowoverride all
---- < /Directory >
Áù¡¢Ó¦ÓþÙÀý
---- ¼Ù¶¨Apache±»±àÒë°²×°ÔÚÖ÷»ú192.168.1.56µÄ/usr/local/apacheĿ¼ÏÂÃæ£¬Í¬Ê±±àÒëÁËÖØÐ´ºÍ´úÀíÄ£¿é¡£
---- 1£®Òþ²ØApacheϵÄij¸öĿ¼£¬Ê¹µÃ¶Ô¸ÃĿ¼µÄÈκÎÇëÇó¶¼Öض¨Ïòµ½ÁíÒ»¸öÎļþ
---- (1)httpd.confµÄʵÏÖ·½·¨
---- ÎÒÃǽ«ÏÂÃæµÄ²¿·Ö·Åµ½/usr/local/apache/conf/httpd.confÖС£
---- < Directory "/usr/local/apache/htdocs/manual/"> options Indexes followsymlinks
---- allowoverride all
---- rewriteengine on
---- rewritebase /
---- rewriterule ^(.*)$ index.html.en [R=301]
---- < /Directory >
---- ×¢: ¡°rewriteengine on¡±ÎªÖØÐ´ÒýÇæ¿ª¹Ø£¬Èç¹ûÉèΪ¡°off¡±£¬ÔòÈκÎÖØÐ´¹æÔò¶¨Ò彫²»±»Ó¦Ó㬸ÿª¹ØµÄÁíÒ»Óô¦¾ÍÊÇÈç¹ûΪÁËÁÙʱȥµôÖØÐ´¹æÔò£¬¿ÉÒÔ½«ÒýÇæ¿ª¹ØÉèΪ¡°off¡±ÔÙÖØÐÂÆô¶¯Apache¼´¿É£¬²»±Ø½«ÆäÖеĸ÷ÌõÖØÐ´¹æÔò×¢Ê͵ô¡£
---- ¡°rewritebase /¡±µÄ×÷ÓÃÊÇÈç¹ûÔÚÏÂÃæµÄrewriterule¶¨ÒåÖб»ÖØÐ´ºóµÄ²¿·Ö(´Ë´¦ÎªÎļþÃûindex.html.en)Ç°ÃæÃ»ÓС°/¡±£¬Ôò±íÃ÷ÊÇÏà¶ÔĿ¼£¬Ïà¶ÔÓÚÕâ¸örewritebaseºóÃæµÄ¶¨ÒåÒ²¾ÍÊÇ/usr/local/apache/htdocs/index.html.en£¬·ñÔò£¬Èç¹û´Ë´¦Ã»ÓС°rewritebase /¡±ÕâÒ»ÏÔò±»ÖØÐ´³Éhttp://192.168.1.56/usr/local/apache/htdocs/manual/index.html.en£¬ÏÔÈ»ÊDz»ÕýÈ·µÄ¡£
---- ÎÒÃÇÒ²¿ÉÒÔ²»Óá°rewritebase /¡±£¬¶øÊǽ«Æä¸ÄΪÈçϲ¿·Ö¡£
---- rewriteengine on
---- rewriterule ^(.*)$ /index.html.en [R=301]
---- »òÕ߸ü¸ÄΪ£º
---- rewriteengine on
---- rewriterule ^(.*)$ http://192.168.1.56/index.html.en [R=301]
---- (2).htaccessµÄʵÏÖ·½·¨
---- ÎÒÃǽ«ÏÂÃæµÄ²¿·Ö·Åµ½httpd.confÖС£
---- < Directory "/usr/local/apache/htdocs/manual/"> options Indexes followsymlinks
---- allowoverride all
---- < /Directory >
---- È»ºó½«ÏÂÃæµÄ²¿·Ö·Åµ½/usr/local/apache/htdocs/manual/.htaccessÖС£
---- rewriteengine on
---- rewritebase /
---- rewriterule ^(.*)$ index.html.en [R=301]
---- ×¢: ¶ÔÎļþ.htaccessËù×öµÄÈκθ͝²»ÐèÒªÖØÆô¶¯Apache¡£
---- Äú»¹¿ÉÒÔÀûÓÃ.htaccess·½°¸½«Õâ¸ömanualÄ¿Â¼ÖØ¶¨Ïòµ½Óû§jephe×Ô¼ºµÄÖ÷Ŀ¼¡£
---- rewriteengine on
---- rewritebase /~jephe/
---- rewriterule ^(.*)$ $1 [R=301]
---- ÕâÑù£¬¶ÔmanualĿ¼ÏÂÈκÎÎļþµÄÇëÇó±»Öض¨Ïòµ½¡«jepheĿ¼ÏÂÏàͬÎļþµÄÇëÇó¡£
---- 2£®½«http://www.username.domain.com¶ÔÓÚusernameµÄÖ÷Ò³ÇëÇóת»»Îª¶Ôhttp://www.domain.com/usernameµÄÇëÇó
---- ¶ÔÓÚHTTP/1.1µÄÇëÇó°üÀ¨Ò»¸öHost: HTTPÍ·£¬ÎÒÃÇÄÜÓÃÏÂÃæµÄ¹æÔò¼¯ÖØÐ´http://www.username.domain .com/anypathµ½/home/username/anypath¡£
---- rewriteengine on
---- rewritecond %{HTTP_HOST} ^www.[^.] .host.com$
---- rewriterule ^(. ) %{HTTP_HOST}$1 [C]
---- rewriterule ^www.([^.] ).host.com(.*) /home/$1$2
---- ×¢: ¡°rewritecond¡±±íÃ÷ÊÇÌõ¼þÖØÐ´¹æÔò£¬µ±Âú×ãºóÃæ¶¨ÒåµÄÌõ¼þºó²Å»áÓ¦ÓÃÏÂÃæµÄÖØÐ´¹æÔò£¬¡°rewritecond¡±Óи÷ÖÖ±äÁ¿£¬Çë²éÔÄÏà¹ØÎĵµ¡£
---- 3£®·À»ðǽÉϵÄÖØÐ´¹æÔò´úÀíÄÚ²¿Íø¶ÎÉÏ·þÎñÆ÷µÄÇëÇó
---- NameVirtualhost 1.2.3.4
---- < Virtualhost 1.2.3.4:80 > servername www.domain.com
---- rewriteengine on
---- proxyrequest on
---- rewriterule ^/(.*)$ http://192.168.1.3/$1 [P,L]
---- < /Virtualhost >
---- ×¢: µ±Íⲿä¯ÀÀÆ÷ÇëÇóhttp://www.domain.comʱ£¬½«±»½âÎöµ½IPµØÖ·1.2.3.4£¬Apache½»ÓÉmod_rewrite´¦Àí£¬×ª»»³Éhttp://192.168.1.3/$1ºóÔÙ½»ÓÉ´úÀíÄ£¿émod_proxy£¬µÃµ½ÄÚÈݺó´«ËÍ»ØÓû§µÄä¯ÀÀÆ÷¡£
---- 4£®»ù±¾Ô¤ÏÈÉ趨µÄת»»Map±í½øÐÐÖØÐ´rewritemap
---- ת»»http://www.domain.com/{countrycode}/anypathµ½Map±íÖй涨µÄURL£¬Ç°ÃæÊÇÐéÄâÖ÷»úÖе͍Òå¡£
---- rewritelog /usr/local/apache/logs/rewrite.log
---- rewriteloglevel 9
---- rewriteengine on
---- proxyrequest on
---- rewritemap sitemap txt:/usr/local/apache/conf/rewrite.map
---- rewriterule ^/([^/] ) /(.*)$ http://%{REMOTE_HOST}::$1 [C]
---- rewriterule (.*)::([a-z] )$ ${sitemap:$2|http://h.i.j.k/} [R=301,L]
---- Îļþ/usr/local/apache/conf/rewrite.mapµÄÄÚÈÝÈçÏÂ:
---- sg http://a.b.c.d/
---- sh http://e.f.g.h/
---- ×¢: µ±Óû§ÇëÇóhttp://www.domain.com/sg/anypathʱ±»ÖØÐ´Îªhttp://a.b.c.d/anypath¡£µ±ÐèÒªµ÷ÊÔʱÇëÓÃrewritelogºÍ rewriteloglevel 9ÁªºÏ£¬9Ϊ×î´ó£¬¼´µÃµ½×î¶àµÄµ÷ÊÔÐÅÏ¢£»×îСΪ1£¬±íʾµÃµ½×îÉٵĵ÷ÊÔÐÅÏ¢£»Ä¬ÈÏΪ0£¬±íʾûÓе÷ÊÔÐÅÏ¢¡£
---- sitemapµÄÓï·¨ÊÇ${sitemap: LookupKey | Defaultvalue}£¬ÓÐЩÊéÉϰÑ$д³ÉÁË%ÊÇ´íÎóµÄ¡£