2011-12-09 25 views
0

私はCodeIgniterと.htaccessを使用してURLを書き換えていますが、これを無視するには、index.htmlとしてください。htaccess rewriterule index.htmlを無視する

index.htmlは一時的なリンク先ページになるため、いつでもアップロードできます。 index.phpのメインサイトへのリンクがあります。

これは.htaccessに現在あると私はあなたが本当に存在しないすべてのものを書き換えたいようではなくなります任意の助け

答えて

4

ためindex.html index.php

RewriteEngine on 

RewriteCond $1 !^(index\.html|index\.php|js|img|fonts|data|css|uploaded|mobile_devices|audioplayer|emails|robots\.txt|archive_blog) 

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

おかげに、サーバーのディレクトリインデックスを設定したものですあなたのディレクトリに。

は、あなたの現在のRewriteCondの代わりにこれを試してみてください。

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 
0

は、なぜあなたはenvironment機能に組み込まれて使用していませんか?

「メンテナンス」環境を作成し、ベースコントローラーを任意に設定することができます。次に、index.phpファイルを編集して、必要な環境を指定するだけです。

2

RewriteCondを使用してindex.htmlファイルを無視する代わりに、FilesMatchディレクティブを使用して直接アクセスを制限することができます。 FilesMatchは、ファイル名(index.htmlなど)または正規表現に基づいてフィルタリングできる正規表現を受け入れます。

完全にindex.htmlファイルへのアクセスを拒否しますindex.htmlファイル

<FilesMatch "index\.html$"> 
    Order allow,deny 
</FilesMatch> 

へのアクセスをブロックします。私は、これが検索エンジンのクロールに及ぼす悪影響を知りません。

あなたが現在持っているそのリスト内のディレクトリの残りの部分についてはhttp://httpd.apache.org/docs/current/mod/core.html#filesmatch


を参照してくださいFilesMatchディレクティブの詳細情報は、あなただけの名前に関係なく、すべてのディレクトリへのアクセスをロックダウンすることができます。それはあなたに少しずつより多くのカバレッジを与えるでしょう。

# Protect specific files from access 
<FilesMatch "index\.html$"> 
    Order allow,deny 
</FilesMatch> 

# Hide directory listing for URL's mapping to a directory 
Options -Indexes 

# Follow all symbolic links in this directory 
Options +FollowSymLinks 

# General rewrite rules 
<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteBase/

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</IfModule> 
:最後に http://httpd.apache.org/docs/current/mod/core.html#options


を参照してください

Options -Indexes 

は、あなたの新しいの.htaccessファイルは次のようになりOptionsディレクティブについての詳細を読むには