1

私の .htaccess ファイル:

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ photo.php?id=$1

RewriteRule ^([a-zA-Z0-9_-]+)/$ photo.php?id=$1

私の目標は、URLmysite.com/photo.php?id=31をに変換することmysite.com/31です。しかし、私が訪問したときmysite.com/31、私が得るのは次のとおりです:

内部サーバーエラー

サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんでした。

サーバー管理者の admin@localhost に連絡して、エラーが発生した時刻と、エラーの原因となった可能性のある操作を知らせてください。

このエラーの詳細については、サーバー エラー ログを参照してください。

ワンプサーバーで実行しています。

編集:

現在の URL は次のようになりますhttp://localhost:8080/img/photo.php?id=1/img-part を htaccessに追加する必要がありますか?

4

2 に答える 2

1

これを試して

<IfModule mod_rewrite.c>    
    Options +FollowSymLinks    
    RewriteEngine On

    RewriteRule ^([a-zA-Z0-9_\-]+)$ photo.php?id=$1    
</IfModule>
于 2012-09-11T17:45:43.337 に答える
1

URL 経由で画像にアクセスできるようにする場合は、URL にディレクトリhttp://mysite.com/31がないことに注意/img/してください。ドキュメント ルートの htaccess ファイルに書き換えルールを配置する必要があります。ディレクトリがあるimgディレクトリ。サイトには画像以外のものがあると仮定するので、画像以外のリクエストを書き換えているかどうかを確認する必要があります。%{REQUEST_FILENAME}!-f!-dフラグをチェックすることでそれを行うことができます。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/?$ /img/photo.php?id=$1 [L]

また、次のような URL を介して画像にアクセスしようとしている場合は、既存のルールで問題ないためhttp://mysite.com/img/31、500 サーバー エラーの原因は他にあります。書き換えモジュールがロードされていることを確認してください。WAMP で、WAMP アイコンを右クリックしてapacheに移動し、次にapache moduleに移動して、 rewrite moduleがチェックされていることを確認します。

于 2012-09-11T17:55:28.250 に答える