4

ページルールが見つからないサーバー上に以下の .htaccess がありますが、機能していないようです。何か案が?

RewriteEngine on
RewriteRule ^article_detail/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ article_detail.php?article_det=$2
Options +FollowSymLinks
ErrorDocument 404 http://www.example.com/main/404_not_found.html


# compress text, HTML, JavaScript, CSS, and XML

<IfModule mod_ext_filter.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
4

5 に答える 5

21

IIS ではなく Apache を使用していると仮定しています。

  1. mod rewrite が有効になっていることを確認します (ファイル内で以下の行を見つけることでこれを行うことができhttpd.confます (通常は/conf/ディレクトリ内にあります。共有ホスティングを使用していて、行頭からセミコロンを削除している場合は異なる場合があります)。

    ;LoadModule rewrite_module modules/mod_rewrite.so

  2. www ルートに関連するディレクトリ タグを見つけて、次のように変更AllowOverride Noneします。AllowOverride All

  3. ルート ディレクトリ内に .htaccess ファイルを作成します (存在しない場合)。

  4. 次のようなものを挿入する必要があります。

    ErrorDocument 500 /errordocs/500.html

    ErrorDocument 404 /errordocs/404.html

    ErrorDocument 401 /errordocs/401.html

    ErrorDocument 403 /errordocs/403.html

    • 代わりに、単純なメッセージを表示したり、表示したりErrorDocument 404 /errordocs/404.htmlすることもできますErrorDocument 404 http://www.yourdomain.com/errordocs/404.htmlErrorDocument 404 "Sorry can't allow you access today"

    • 問題が発生した場合は、Apache マニュアル (ErrorDocument ディレクティブ)を参照してください。

あなたの場合、ルートでファイルをAllowOverride All編集し.htaccess、エラーページの URL にアクセスできることを確認してください。指定した URL に何もない場合、Apache はデフォルトの 404 を返します。

于 2013-07-18T09:23:51.940 に答える
1

Apache 構成の Web サイトの Directory セクションで、FileInfo ディレクティブをオーバーライドできることを確認してください。

のようなもの

AllowOverride ファイル情報

http://httpd.apache.org/docs/current/mod/core.html#errordocument

于 2013-07-16T21:10:53.823 に答える
1

Apache 構成で httpd.conf から行のコメントを外してみてください。

#LoadModule rewrite_module modules/mod_rewrite.so

はコメント解除されています:

LoadModule rewrite_module modules/mod_rewrite.so

Apacheも再起動します

于 2013-07-17T14:02:27.200 に答える