2012-04-11 7 views
0
私は www.mysite.com/anything/anything OR www.mysite.com/anythingをリダイレクトし、 TO www.mysite.com/app

htaccessに書き換えルールを書き込むにはどうすればよいですか?

を除外する必要が

www.mysite.com/app

もちろん除外したいと思います。オプションです。余分なリダイレクトが必要なので、余分な時間がかかりますが、それを除外しても良いでしょう。

私は、これらの基本的な例を見つけhttp://www.yourhtmlsource.com/sitemanagement/urlrewriting.htmlと、この行っている:

RewriteRule ^*/*/$ /app 
RewriteRule ^*/$ /app 

をしかし、それは動作しません。プラス、私はまだ/アプリ

ヘルプをしてください除外する方法がわかりませんか?

UPDATE

は、私は思います。*正規表現で0以上のドットの略で、私の例は完全に間違っている、私の代わりに、あなたの答えに使用されるドットの何も構文を必要としています。

答えて

3

あなたはこの試みることができる:DOCUMENT_ROOTの下であなたの.htaccessファイルにこのコードを入れて

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/app$ 
RewriteRule ^.*$ /app [L] 
2

これは機能しますか?

RewriteEngine on 
RewriteRule ^.*$ app/ [L] 

残念ながら、正しいパスは除外されません。しかしまずそれを試してみてください。

+0

スラッシュのない場合もあります – Dion

+0

[L]は何を表していますか? –

+0

。*はもちろん正規表現ですが、残念です。 \。*はポイント用です*はすべてのものです。 から取得しました:http://www.easymodrewrite.com/notes-last Lフラグは、Apacheにそのリクエストの書き換えルールの処理を停止するように指示します。今や実現しないことが多いのは、書き換えられた新しいファイル名を新たに要求し、再度書き換えルールの処理を開始することです。 それはおそらくあなたのために不必要です。 –

0

を:上記のRewriteRuleで

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^(?!app/).*$ app [L,NC] 

否定先読みは/app/app/で始まるURI以外のすべてをリダイレクトします。