1

私は彼らのウェブサイトで友人のためにいくつかの仕事をしています、そして私たちが新しいサイトで働いている間、私は次のルールでユーザーをリダイレクトするために彼らの.htaccessファイルを設定したいと思います:

  • /または/index.htmlへのリクエストをサブディレクトリにリダイレクトします(たとえば、両方http://example.com/http://example.com/index.htmlリダイレクトする必要がありhttp://example.com/legacy/index.htmlます)
  • index.phpへの直接リクエストがリダイレクトなしで通過できるようにします(例http://example.com/index.php
  • 可能であれば、2番目のサブディレクトリへのリクエストはindex.phpにリダイレクトされます(例:http://example.com/beta/にリダイレクトされhttp://example.com/index.phpます)

これはおそらく単純なリクエストですが、.htaccessが使用するルール言語の経験はありません。

前もって感謝します!!

4

2 に答える 2

1
  • /サブディレクトリへの、またはサブディレクトリへのリクエストをリダイレクトします/index.html(たとえば、両方http://example.com/http://example.com/index.htmlリダイレクトする必要がありますhttp://example.com/legacy/index.html

    RewriteEngine On
    RewriteRule ^(index\.html)?$ /legacy/index.html [L]
    
  • index.phpへの直接リクエストがリダイレクトなしで通過できるようにします(例http://example.com/index.php

    RewriteRule ^index\.php$ - [L]
    
  • 可能であれば、2番目のサブディレクトリへのリクエストはindex.phpにリダイレクトされます(例:http: //example.com/beta/redirects to http://example.com/index.php

    RewriteRule ^beta/?$ /index.php [L]
    

これらはすべて、ドキュメントルートのhtaccessファイルに含まれます。アドレスバーのURLが変更されるように実際にブラウザをリダイレクトする場合はR=301、角かっこにaを含めます[L,R=301]。「2番目のサブディレクトリへのリクエストは「任意のサブディレクトリ」を意味するindex.phpにリダイレクトされる」と言う場合、ルールを次のように変更する必要があります。

RewriteRule ^([^/]+)/?$ /index.php [L]
于 2012-08-21T05:13:09.597 に答える
0

私はcodeigniterで逆のことをしました...

    RewriteEngine On    
    RewriteBase /myproject
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]

    $config['base_url'] = 'http://localhost/myproject/';
    $config['index_page'] = '';

お役に立てれば

于 2012-08-21T05:03:07.170 に答える