2

私のPCの私のドメインは:http
: //www.laji.com wwwフォルダーの下に2つのファイルがあります

.htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# All other pages
# Don't rewrite real files or directories
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$
RewriteRule ^(.*)$ index\.php?main_page=$1&%{QUERY_STRING} [L]

index.php

<?php echo $_GET['main_page'] ?>

http://wwww.laji.com/xxx.jpg (この jpg は存在しません) にアクセスすると、 index.php?main_page=xxx.jpg に書き換えられますが、404 情報を表示させたいので、表示する必要はありません。 rewrite 、なぜ私の htaccess コードが機能しないのですか?

4

1 に答える 1

0

変更してみてください:

RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$

に:

RewriteCond %{REQUEST_URI} !\.(css|js|gif|png|jpg|jpeg)$

それが機能しているかどうかを教えてください。

動作しない場合は、次のような行 (.htaccess の上部付近) を追加する必要があると思います:

ErrorDocument 404 "Not found!"

動作するようになったら、次のようなカスタム エラー 404 ファイルを追加できます (上記の引用符で囲まれたテキストの代わりに)。

ErrorDocument 404 /error_404.html

参考:.htaccessを使って一部のファイルタイプの404エラー処理をWebサーバーに設定する(ErrorDocument 404 + 書き換えルール)

于 2014-01-22T08:30:23.870 に答える