2012-01-16 11 views
2

を提供しながら、私がしたい私はこのhtaccessファイル:元のコンテンツ

http://domain.com/page/thing1 
http://domain.com/page/thing2 
http://domain.com/page/thing3 

のようなURL構造を持つサブディレクトリフォームのURLを削除します。

  • 削除/ページ/ URLから
  • /page/thing1のコンテンツを配信する

私はExpを使用していますressionEngineは、ので、ここですべてのあなたのURLがhttp://domain.com/thing1http://domain.com/thing2などであることを変更した場合、私は、URL

<IfModule mod_rewrite.c> 
     RewriteEngine On 

     # Removes index.php 
     RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteRule ^(.*)$ /index.php/$1 [L] 
</IfModule> 
+0

あなたは、必ずしもあなたがEEで、このデータにアクセスしているかに応じて、ModRewrite経由でこれを行う必要はありません。これらのURLはページモジュール経由で作成されますか?あるいは、 'page'はテンプレートグループで、' thing1'はテンプレートですか?または、 'thing1'、' thing2'など、すべてのエントリURLのタイトルですか? –

+0

ここに2つの投稿があります。http://stackoverflow.com/questions/2402140/use-a-subdirectory-as-root-with-htaccess-in-apache-1-3とhttp://stackoverflow.com/質問/ 990392/htaccess-rewrite-to-redirect-root-url-to-subdirectory – Anagio

+0

@DerekHogue今私はページがテンプレートグループで、thing1とthing2はエントリです。 – Dan

答えて

1

これらの新しいURLから持っていたことにする利益は何ですか?

ExpressionEngine URL Schematicに示すように、単にあなたのURIから /page URLセグメント(すなわちテンプレート・グループ)を削除すると、追加のオーバーヘッドと複雑さの多くを作成し

ExpressionEngine URL Schematic

ネイティブExpressionEngineのPages ModuleかサードパーティのStructure Moduleが最も簡単な方法であり、.htaccessファイルにRewriteRulesルールを追加する必要はありません。

ただし、これにはページを作成する必要があります。各エントリのURLは理想よりも小さい場合があります。

0

からのindex.phpを削除するか、あなただけのときにに戻っページ/を追加することができなかったものですindex.phpファイルに書き直しますか?

RewriteRule ^(.*)$ /index.php/page/$1 [L] 
+0

これは、*すべてのリクエスト*が '/ pages'テンプレートグループを通ってルーティングされ、多くのURI(多くのコアExpressionEngine URLを含む)が壊れると想定します。最低限、 'RewriteRule'と' RewriteCond'を組み合わせなければなりません。 – rjb

0

IfModuleブロックで、既存の書き換えルールの下にこれらの行を追加します。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?!page/)(.*)$ /page/$1 [L,NC]