2011-12-01 6 views
1

私は少し短くなるようにURLを再フォーマットしようとしています。今すぐリンクは次のようになります:website.com/image?id=name.jpgmod_rewriteを使用してURLからファイル名の一部を削除する手助けが必要

ファイル拡張子やイメージなしでm.website.com/nameと同じようにリンクを張りたいと思っています。 URLのPHPファイル。 mod_rewriteはそれを行う方法ですので、どんな助けでも大歓迎です。それはそうURL http://m.website.com/nameにアクセスして、誰かがhttp://website.com/image?id=name.jpgのためのコンテンツを提供しますようにするために

答えて

0

は、あなたm.website.comのホスト名を最初に確認する必要が、その後、URIの名前部分と一致しています。その試合を使用して、プロキシ同じサーバー上でホストされている両方website.comm.website.com場合や、([P]を使用して)要求、単に内部的に書き直すことができます。ドキュメントルートであなたの.htaccessファイルでこれを入れてみてください:

RewriteEngine on 
# check the host (NC = no case) 
RewriteCond %{HTTP_HOST} ^m\.website\.com$ [NC] 
# don't rewrite /image 
RewriteCond %{REQUEST_URI} !^/image 
# Match the first non-slash word and rewrite 
RewriteRule ^([^/]+)$ /image?id=$1 [L] 

これは/image?id=name.jpgするhttp://m.website.com/nameを書き換えますが、それはhttp://m.website.com/path/nameを書き換えません。 idパラメータにパス(およびその他すべて)を含める場合は、([^ /] +)(。*)にRewriteRuleで変更します。

+0

外部リダイレクトに 'R'が使用されています。それを除く! – undone

+0

あなたは正しい、私が何を考えていたのか分からない。 –

+0

これは完璧に機能しました。ありがとうございました。 –

関連する問題