RewriteCondとRewriteRuleに問題があります。私は、フォームのURLを書き換えたい:mysub.mydomain.com/uploads/*をmysub.mydomain/mysub/uploads/*に書き直してください。
http://mysub.mydomain.com/uploads/image.png
にはhttp://mysub.mydomain.com/mysub/uploads/image.png
私AliasMatchよう:
AliasMatch "^/(.+)/uploads/(.*)$" "/var/www/html/test/client_files/$1/uploads/$2"
は、適切なリソースへの要求を指示します。
これは私がこれまで持っているものです。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^uploads/(.*)$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.mydomain\.com(.*) %{HTTP_HOST}$1/$2 [L]
それは動作しませんが。要求されたURLが見つからなかったというメッセージが表示されます。私がやっている書き換えを使って問題を解決する方法を教えてもらえますか?
UPDATE#1 私はhttpd.confファイルの仮想ホストでこれを使用しています。私は@ user2493235答えに基づいて動作するために次のを持っているが、私のAliasMatchは書き直し後に適用されていません。これは、書き換えられたURIにドキュメントルートを追加するだけです。
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteRule ^(\/uploads\/.*)$ /%1$1
私はAliasMatchのさまざまなバージョンを試してみて、それを別名に変更しました。書き換え後にAliasMatchを処理していないようです。
私はUPDATEで、あなたの問題に対処するために私の答えを更新しました。 – SuperDuperApps