2011-02-03 60 views
-1

我已經在Windows 2003 VPS服務器上使用ISAPI重寫安裝yourls.org(URL縮短服務)。我已經安裝了ISAPI重寫,並且使用Wordpress,所以我知道這是行得通的。我已經使用在頁面上提示的規則:問題與yourls.org重定向在Windows 2003與ISAPI重寫

http://code.google.com/p/yourls/wiki/htaccess

在我的ISAPI重寫,但重定向不能正常工作。該頁面正在循環,試圖重定向到自己。

我不熟悉重寫規則,所以任何幫助,將不勝感激。我已經應用的規則是:

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (/|\.php|/[^.]*)$ [NC] 
RewriteRule ^(.*)$ /yourls-loader.php [L] 

我添加了第三個條件行,它基於我在應用程序的wiki中找到的內容。

如果有人可以擺脫爲什麼這不起作用,我會很感激。

T

回答

0

好的,這花了我整整一天,但我得到它的工作。對於任何感興趣的人來說,ISAPI重寫絕對沒有錯。問題出在代碼中。在一個名爲yourls-loader.php的文件中,有一行檢查url,解構並重構它。問題是它總是強制新的url進入https。如果你的服務器上沒有安全證書,它將無法工作!

//$scheme = (isset($_SERVER["HTTPS"]) ? 'https' : 'http'); 
//$request = str_replace(YOURLS_SITE.'/', '', $scheme . 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); 
$request = str_replace(YOURLS_SITE.'/', '', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); 

第2行被註釋掉了,這就是這裏所說的。因爲我信任並知道我的服務器是如何設置的(因爲我自己做了),我不覺得有任何需要這個檢查系統。

在Windows系統上需要注意的另外一件事是,您不得不在這個文件的開始處添加建議的Server_URI解析。

if (isset($_SERVER['HTTP_X_REWRITE_URL'])){ 
    $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; 
} 

我希望這可以幫助別人......這一整天都是在沒有在線支持的情況下解決的。