2014-01-28 59 views
0

最終我試圖讓設置我的服務器上特別可靠的方式來檢測某人的瀏覽器的名稱和版本(日誌,不啓用功能),有人指出this project了。話雖這麼說,他們使用的是以下內容的htaccess文件:如何讓IIS 7將js文件解析爲PHP文件?

AddType application/x-httpd-php .js 

他們的自述文件說,這是爲了獲得服務器也使用PHP解析某個js文件,而如果使用。htaccess未啓用,您必須找到解決辦法。

我使用的是IIS 7,它使用的web.config文件,但我沒有看到在互聯網上PHP一個徹頭徹尾的現成的MIME類型,所以做這樣的事情並不像它去上班:

<configuration> 
    <system.webServer> 
     <staticContent> 
     <mimeMap fileExtension=".js" mimeType="PHP mime type" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

我試着用this suggestion,其中涉及通過IIS GUI添加處理程序映射,但似乎並沒有要麼平移它。如何才能做到這一點?

回答

1

我通過增加一個處理程序映射到IIS得到了這個工作。我所做的只是使用FastCgiModuleRequest path集中添加處理程序映射到detect.js,顯然指揮到php-cgi.exe是我的服務器上的可執行文件的路徑。那麼PHP是解析detect.js很好,我碰到了,而試圖得到這個工作的唯一麻煩的是添加了detect.js腳本之前正在運行/加載到給定的測試網頁創建該WhichBrowser對象的代碼。爲了解決這個問題,我只是修改給出here的代碼,這樣:

<script> 
(function(){var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0; 
    e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0; 
    e|=(e&16&&({}.toString).toString().indexOf("\n")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0; 
    f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0; 
    p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script'); 
    s.src='http://intranet.zachs/media/whichbrowser/detect.js?' + p.join('&'); 

    s.onreadystatechange= function() { 
      if (this.readyState == 'complete') go(); 
     } 
     s.onload= go; 
    s.type="text/javascript"; 
    d.getElementsByTagName('head')[0].appendChild(s); 
    })(); 

然後在我的go功能我只是有:

Browsers = new WhichBrowser(); 
alert("Browser Info: " + Browsers); 
+0

's.onload'似乎不想要開火。 – Panzercrisis

+0

你使用什麼瀏覽器?我在Chrome和Firefox中測試了它,它對我很好用 – elitechief21

+0

我正在使用Firefox。我試圖仔細添加處理程序映射和代碼,但可能會丟失某些東西。 – Panzercrisis

0

PHP的MIME類型是:

  • 文本/ PHP
  • 文本/ X-PHP
  • 應用/ PHP的
  • 應用程序/ x-PHP
  • 應用程序/ x-httpd- php
  • application/x-httpd-php-source

'application/php'是我見過的最常見的應用程序。

你是Web.config當使用'application/php'時,XML代碼似乎可以正常工作,但您也可以使用IIS管理器創建MIME類型映射(請參閱:http://technet.microsoft.com/nl-nl/library/cc725608(v=ws.10).aspx)。