2009-08-12 10 views
21

.htaccessを使用してフォルダ名を書き換えることができますか? これは私が言っていることです。 folder1のは私のウェブスペース上の既存のフォルダである.htaccessを使用してフォルダ名を書き換えます

www.site.com/apple/page.php 

今私は、(例えば)にURLを書き換えたい

www.site.com/folder1/page.php 

は、私のようなURLを考えてみましょう。

重要: "apple"は名前ではなくフォルダです!

  1. ユーザータイプwww.site.com/folder1/login.php
  2. URLこれはappleだけであることを意味www.site.com/apple/login.php

へのURLをリダイレクト書き換えとはならない。ここで[OK]を

は、ステップ計画バイステップであります名前であり、ディレクトリではありません。すべてのコードはfolder1から来てください。 Acutallyリンゴはちょうどfolder1の別名にする必要があります。 folder1からAppleに名前を変更することはできません。そのため私はちょうどをappleに書き換えます。

+0

リンゴのフォルダがあまりにもあなたのウェブスペース上に存在していますか? – Josh

+0

それはちょうど名前ですね! – sanders

+0

申し訳ありませんが、あなたは何をしたいかを明確にする必要があります。ユーザーが入力したURLや実際のファイルがどこのウェブスペースにあるかなど、何をしたいかを段階的に教えてください。 – Josh

答えて

33

mod_rewriteは、要求されたURIのみを書き換え/リダイレクトできます。したがって、対応する/folder1/…に書き換えるには/apple/…を要求する必要があります。

はこれを試してみてください:

RewriteEngine on 
RewriteRule ^apple/(.*) folder1/$1 

このルールは、内部/folder1/…へのURIパス/apple/…で始まるすべてのリクエストを書き換えます。あなたが実際に他の方法でラウンドを探していたよう


編集:このルールは、上記の他のルールと一緒に動作するように設計されて

RewriteCond %{THE_REQUEST} ^GET\ /folder1/ 
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301] 

/folder1/…のリクエストは、外部で/apple/…にリダイレクトされ、/apple/…のリクエストは、/folder1/…に内部的に書き直されます。

+0

ああ、ガンボー私はあなたが正しいと思います。元のポスターが意味することを誤解しました。 +1 – zombat

+0

@ zombat:いつものように) – Gumbo

+0

http://site.com/folder1/login.phpでこれを試しましたが、http://site.com/apple/login.phpに書き換えません – sanders

5

試してください:あなたは、URLに表示したいフォルダが文の最初の部分である

RewriteRule ^/apple(.*)?$ /folder1$1 [NC] 

- これはそれが照合されます何であり、第二の部分は、既存にそれを「書き換えます。」フォルダ。 [NC]フラグは、Apple /などのように大文字と小文字の違いを無視することを意味します。

チュートリアルについてはこちらをご覧ください:http://www.sitepoint.com/article/guide-url-rewriting/

あなたはここからダウンロードできるWindows用の素敵なテストユーティリティもあります: http://www.helicontech.com/download/rxtest.zip ちょうどあなたがドメイン名を残しておく必要がありテスターのために注意すること - そう

RewriteRule ^/folder1(.*)?$ /apple$1 [R] 
:テストは

はこれを試すのfolder1 /から/リンゴにリダイレクトする/folder1/login.phpに反します

はただのhtaccessファイルに上記を組み合わせリライトその後、リダイレクトとします

RewriteRule ^/folder1(.*)?$ /apple$1 [R] 
RewriteRule ^/apple(.*)?$ /folder1$1 [NC] 
+0

助けてくれてありがとうございますが、私はこれをテストします: site.com/folder1/login.phpで試しましたが、site.com/apple/login.phpに書き換えません マッチではないパターンを取得します – sanders

+0

@Josh :あなたの編集RewriteRule ^/folder1(。*)?$/apple1 $ 1 [R]は動作しません。 – sanders

+0

リダイレクトは遅くなりますか?リダイレクトが発生したとき、リダイレクトしていないバージョンと比較しますか? – Miguel

関連する問題