2011-07-29 9 views
2

Web上に表示されたアプリケーションURLからindex.phpを削除しました。しかし、私は後で奇妙な問題があります。URLからindex.phpを削除した後にクローラを使用してWebページにアクセスできない

私はこのようなブラウザを使ってウェブサイトにアクセスすることができます... http://www.oakquotes.com/quotes/author/etc-etc(index.phpがないことに気付きます)が、クローラを使用して同じURLにアクセスしようとすると403 HTTPエラーが禁じられます。私は犯人は、私はURLからindex.phpをを削除するために書かれている.htaccessのルールだと思う

User-agent: * 
Allow:/quotes/topic 
Allow:/quotes/author 
Disallow: 

Sitemap: http://www.oakquotes.com/Sitemap.xml 
Sitemap: http://www.oakquotes.com/author_sitemap.xml 
Sitemap: http://www.oakquotes.com/topic_sitemap.xml 

:ここ

は、robots.txtファイルです。 htaccessのコードは次のとおりです。

<IfModule mod_rewrite.c> 
    # For security reasons, Option followsymlinks cannot be overridden. 
    # Options +FollowSymlinks 
    Options +SymLinksIfOwnerMatch 
    RewriteEngine On 
    RewriteBase/
    RewriteCond $1 !^(index\.php|images|robots\.txt|Sitemap\.xml|topic_sitemap\.xml|author_sitemap\.xml|search\.html|style|js|system|application|quotes/authors|quotes/topic|application/controllers|application/views) 
    RewriteRule ^(.*)$ ./index.php/$1 [L] 
</IfModule> 

ステップがありませんか?この点で私を助けてください。ありがとう。

+0

のレンダリングを停止しますか? –

+1

*クローラがホストヘッダーを使用していますか? *以前クローラがサイトにアクセスできましたか? *アクセスログとエラーログの内容は何ですか? *クローラは、応答の詳細について何か詳細を示していますか? – Cal

+0

はい、レスポンスのHTTPステータスでfoorbidden 403と表示されます...ログには何も表示されません...私はそのURLの書き換えに関するいくつかの問題に関連していると思います... –

答えて

0

通常のブラウザでは、403エラーも発生します。ウェブサイトが表示される理由は次のとおりです。

基本認証では常に403エラーが返されます。ほとんどのサーバーでは、ErrorDocument 403のグローバルルールは403.htmlのように定義されています。 403エラーが発生した場合、サーバーはエラー文書403.htmlを内部的に探します。このドキュメントは存在せず、RewriteRuleが一致し、サーバーはレンダリングされたindex.phpページを返します。これは403エラーを返したにもかかわらず、Webページを表示する理由です。さらに複雑なのは、403.htmlサイトが存在しないため、403.htmlサイトを参照することによって404(ページが見つかりません)がトリガーされます。それは、グローバルに定義されたErrorDocumentsの問題です。 500.htmlが定義されているため、エラー500は404エラーをトリガーします。

.htaccessで1つのErrorDocument処理を定義しようとすると、その違いがわかります。

ErrorDocument 403 "Access denied" 

この規則は、エラー403がトリガされた場合はエラーメッセージが出力されますし、あなたが403エラーを取得するときにログが言うん何のindex.php

関連する問題