0

RewriteRuleを使用してWebサイトのhttpルートをサブフォルダーにポイントするにはどうすればよいですか?

私はいつも以下のルールを使用していますが、最新のwampサーバーにアップグレードした後、それはもう機能しません。なんで?

RewriteRule ^/?$  local/applications/bin/oldsite/index.htm [L,QSA]

たとえば、指摘したいのですが

http://mysite.com/http://mysite.com/local/applications/bin/oldsite/index.htm

またはローカルホストのWampサーバーでは、次のようになります。

http://localhost/mysite/http://localhost/mysite/local/applications/bin/oldsite/index.htm

何か案は?

そしてまた、

http://localhost/mysite/contact.htmhttp://localhost/mysite/local/applications/bin/oldsite/contact.htm

http://localhost/mysite/about.htmhttp://localhost/mysite/local/applications/bin/oldsite/about.htm

編集

以下のルールで、他のページを特定の場所に向けることができました。

RewriteRule ^([a-zA-Z0-9\-]+)\.htm/?$  local/applications/bin/oldsite/$1.htm [L,QSA]

しかし、それでも私は指摘することはできません

http://localhost/mysite/http://localhost/mysite/local/applications/bin/oldsite/index.htm

4

3 に答える 3

1

更新しました

あなたはこれを試すことができます:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

#### localhost sets of rules
# No target file, go to index.php
RewriteCond %{HTTP_HOST}   localhost     [NC]
RewriteCond %{REQUEST_URI} ^/mysite/?$
RewriteCond %{REQUEST_URI} !index\.htm   [NC]
RewriteRule  .  mysite/local/applications/bin/oldsite/index.htm  [R=301,L]

# Target file, go to file
RewriteCond %{HTTP_HOST}     localhost     [NC]
RewriteCond %{REQUEST_URI}  ^/mysite/([^\.]+)\.htm [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  .  mysite/local/applications/bin/oldsite/%1.htm  [R=301,L]

#### Live site set of rules
RewriteCond %{HTTP_HOST}   (?:www\.)?mysite\.com  [NC]
RewriteCond %{REQUEST_URI} !index\.htm            [NC]
RewriteCond %{REQUEST_URI} ^/?$
RewriteRule  .  local/applications/bin/oldsite/index.htm [R=301,L]

ルールの最初のセットはローカルホスト用であり、永続的にリダイレクトします。

http://localhost/mysite/filename.htm

に:

http://localhost/mysite/local/applications/bin/oldsite/filename.htm

filename.htm着信URLにが存在しない場合filename.htm、置換URLには常にindex.htm

文字列mysiteは固定文字列でfilenameあると見なされ、変数であると見なされます。


2番目のルールセットはWebサーバー用であり、永続的にのみリダイレクトされます

http://mysite.com/

に:

http://mysite.com/local/applications/bin/oldsite/index.htm

最後のケースでは、着信URLが追加のパスを保持している場合、ルールは適用されません。

サイレントマッピングの場合は、から削除R=301[R=301,L]ます。

上記のルールセットを、ローカルルートディレクトリとリモートルートディレクトリの両方の.htaccessファイルにコピーします。

于 2013-02-10T02:56:16.257 に答える
0

これにより、開始できる場合があります(テストされていません):要求が特定のサブフォルダーを指していないかどうかを条件で確認します。その場合、リクエストをサブフォルダにリダイレクトします。必要に応じて、ターゲットで使用できます。HTTPステータス301の代わりに、より適切な場合は別のステータスを使用できます。

RewriteCond %{REQUEST_URI} !^/(local/applications/bin/oldsite/.*)$
RewriteRule ^(.*)$ http....n/subfolder/%1 [R=301,L]
于 2013-02-09T22:12:32.830 に答える
-1

「oldsite」ディレクトリをドキュメントルートにしたいようですが、そうですか?

于 2013-02-09T21:51:53.727 に答える