0

これを機能させるのに苦労しています.URLを短縮するためのPHPスクリプトであるYOURLSをインストールしました。機能するためには、次のものが必要です。

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

ここでは問題ありません。しかし、PHP スクリプトとは関係のないイメージ ホスティング用のディレクトリも使用したいと考えています。要求された URL が .jpg|.jpeg|.gif|.png で終わり、RewriteRule が /imgshare/$1 にリダイレクトされるかどうかを確認します。以下のコードを試しましたが、mysite.com/img に移動するとサーバー エラーが発生します。 .jpg ですが、URL リダイレクト "mysite.com/y4Jd" ではありません:

    RewriteCond %{REQUEST_URI} !(\.jpg|\.jpeg|\.gif|\.png)$ [NC]
    RewriteRule ^(.*)$ /yourls-loader.php [L]
    RewriteCond %{REQUEST_URI} (\.jpg|\.jpeg|\.gif|\.png)$ [NC]
    RewriteRule ^(.*\.(jpeg|jpg|png|gif))$ /imgshare/$1 [L]
4

1 に答える 1

0

これは問題ではありませんが、注意として、2 番目の RewriteCond は既に画像末尾のファイルと一致しているため、RewriteRule でその一致を繰り返す必要はありません。または、RewriteRule に対して冗長であるため、RewriteCond は必要ありません。

ただし、実際の問題は、最終規則に余分なスラッシュがあることです。$1 には、元の URL と一致した先頭のスラッシュが含まれるため、現在、ルールはimgshareと ファイル名の間に 2 つのスラッシュを追加しています。このルールを次のように実装します。

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png)$ [NC]
RewriteRule ^(.*)$ /imgshare$1 [L]
于 2013-02-04T22:43:58.667 に答える