1

サーバーの過負荷が発生しました。サーバー管理者は、この問題は htaccess ファイルが原因であると述べました

これはコードです:

RewriteEngine On
RewriteBase /here/
RewriteRule ^top/?$ index.php?mode=top [QSA]
RewriteRule ^top/video/?$ index.php?mode=top&cat=vids [QSA]
RewriteRule ^top/picture/?$ /index.php?mode=top&cat=pics [QSA]

RewriteRule ^random$ index.php?mode=random [QSA]
RewriteRule ^random/video/?$ index.php?mode=random&cat=vids [QSA]
RewriteRule ^random/picture/?$ index.php?mode=random&cat=pics [QSA]

RewriteRule ^new/?$ index.php [QSA]
RewriteRule ^new/video/?$ index.php?mode=&cat=vids [QSA]
RewriteRule ^new/picture/?$ index.php?mode=&cat=pics [QSA]

RewriteRule ^video/([0-9]+)_(.*)$ item.php?cat=vids&id=$1 [QSA]
RewriteRule ^picture/([0-9]+)_(.*)$ item.php?cat=pics&id=$1 [QSA]
ErrorDocument 404 /item.php
4

2 に答える 2

1

rewriterules を削減し、ルーティングを完全に PHP に入れ、その中で 404 を処理します。

例:

RewriteBase /my_blog

RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
RewriteRule ^router.php [PT]

router.phpを実行すると、var_dump($_SERVER);要求された URL が何であり、何を処理できるかがわかります。

于 2012-10-08T21:39:28.970 に答える
1

これにより、途中まで到達できます。

RewriteEngine On
RewriteBase /here/
RewriteRule ^(top|random|new)/?$ index.php?mode=$1 [QSA]
RewriteRule ^(top|random|new)/(video|picture)/?$ index.php?mode=$1&cat=$2 [QSA]
RewriteRule ^(video|picture)/([0-9]+)_(.*)$ item.php?cat=$1&id=$2 [QSA]
ErrorDocument 404 /item.php

これでまったく同じ結果が得られるわけではありません。 or 、 notまたはのcatいずれかになるため、これが機能するようにスクリプトを変更する必要があります。videopicturevidspics

それがうまくいかない場合は、この少し簡略化されたバージョンを使用できます。

RewriteEngine On
RewriteBase /here/
RewriteRule ^(top|random|new)/?$ index.php?mode=$1 [QSA]
RewriteRule ^top/video/?$ index.php?mode=top&cat=vids [QSA]
RewriteRule ^top/picture/?$ /index.php?mode=top&cat=pics [QSA]

RewriteRule ^random/video/?$ index.php?mode=random&cat=vids [QSA]
RewriteRule ^random/picture/?$ index.php?mode=random&cat=pics [QSA]

RewriteRule ^new/video/?$ index.php?mode=&cat=vids [QSA]
RewriteRule ^new/picture/?$ index.php?mode=&cat=pics [QSA]

RewriteRule ^video/([0-9]+)_(.*)$ item.php?cat=vids&id=$1 [QSA]
RewriteRule ^picture/([0-9]+)_(.*)$ item.php?cat=pics&id=$1 [QSA]
ErrorDocument 404 /item.php
于 2012-10-08T23:27:41.693 に答える