-1

ISAPIリライトを使用して、使用しているWindows 2003 VPSサーバーにyourls.org(URL短縮サービス)をセットアップしました。私はすでにISAPIリライトをインストールしてWordpressで動作しているので、それが機能していることを知っています。私はこのページから提案されたルールを使用しました:

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で見つけたものに基づいて、3番目の条件付き行を追加しました。

なぜこれが機能しないのか、誰かが何か光を当てることができれば、私はそれをいただければ幸いです。

T

4

1 に答える 1

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システムで注意すべきもう1つのことは、このファイルの先頭にも、提案されたServer_URI解析を追加する必要があるということです。

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

これが誰かに役立つことを願っています...オンラインサポートなしで解決するのに一日中かかりました。

于 2011-02-03T23:26:05.293 に答える