我正在將使用Apache的PHP應用程序移到Node.js應用程序中。 PHP版本使用tileservices.conf
,一個Apache配置文件。我需要將配置文件從該文件移動到應用程序的Node.js版本。部分配置文件如下:Apache的Rewrite規則的Node.js版本
RewriteEngine on
RewriteRule ^/1.0.0/([a-zA-Z0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)\.[a-zA-Z]*$ /sandbox/TileServices/tiles/tc/cache_server.php?z=$2&c=$3&r=$4&cache=$1
RewriteRule ^/nwomtest/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/tc/cache_server_new.php?z=$2&c=$3&r=$4&cache=$1
RewriteRule ^/nocache/nwomtest/1.0.0/(.+)/(.+)/(.+)/(.+)$ /sandbox/TileServices/www/tc/cache_server_new.php?z=$2&c=$3&r=$4&cache=$1&do_not_cache=nocache
RewriteRule ^/nocache/nwomtest/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/tc/cache_server_new.php?z=$2&c=$3&r=$4&cache=$1&do_not_cache=nocache
RewriteRule ^/oms/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/MosaicRequestHandler.php?z=$2&c=$3&r=$4&library=$1&filestyle=strip
RewriteRule ^/omb/1.0.0/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/MosaicRequestHandler.php?z=$2&c=$3&r=$4&library=$1&filestyle=block
RewriteRule ^/ms/1.0.0/(.+)/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/Mosaic/Mosaic.php?z=$3&c=$4&r=$5&resource=$1&tkid=$2&filestyle=strip
RewriteRule ^/mb/1.0.0/(.+)/(.+)/(.+)/(.+)/(.+)\.[a-zA-Z]*$ /sandbox/TileServices/www/Mosaic/Mosaic.php?z=$3&c=$4&r=$5&resource=$1&tkid=$2&filestyle=block
我該如何將它移動到Node.js應用程序中?我使用的是快速,所以我可以做線沿線的東西:
app.get('regexstring', function(req, res){
res.render(...)
});
,但我不能完全弄清楚如何去做。
你可以'str.match()'所有那些對傳入網址的parens提取位置(「$ 1,$ 2等)」的條款。我不知道express是否會爲您提供路徑模式,因此您可能必須創建一個幫助程序,通過它們遍歷它們並根據需要預訂它們,方法是使用closure將匹配的段傳遞給響應處理程序。 – dandavis
@dandavis我想我明白你的意思了,但你能舉個例子嗎? –
難道你在node.js應用程序的前面沒有東西,比如nginx或apache?在那裏重寫可能會更合適。 –