2

実際のコンテンツはdomain.com/view.php?id=image_idにあります

domain.com/view/image_idでアクセスできるようにしたい

.php以下は、ファイル拡張子を取得するために現在存在します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

htaccess に次を追加しても機能しません。

RewriteRule ^view/([A-Za-z0-9]+). /view.php?id=$1 [L, QSA]

また、私はview.phpの後にすべてを持っていても大丈夫ですか?( view.php?id=) は php ファイルに取り込まれ、そこからすべてをスラッシュで区切り、それらのデータを実装できます。

ここstackoverflowや他の場所で多くの解決策を見てきましたが、それらが私には当てはまらないか、サーバーに何か問題があります. いずれにせよ、私はinternal 500 server error. ありがとう。

4

3 に答える 3

2

ビュー ルールは、より一般的な php 拡張ルールのに配置する必要があります。

RewriteEngine On

RewriteRule ^view/([A-Za-z0-9]+)$ /view.php?id=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

また、 の後にそのスペースは必要ありませんL,

于 2013-10-04T18:16:04.403 に答える
0
^view/([A-Za-z0-9]+).
                    ^---single character wildcard

最後.にID値の1つを照合/消費するので、URLが

/view/foobarbaz

あなたのキャプチャグループは実際には にfoobarbaなり、zは切り落とされ、生成されます

/view.php?id=foobarba
于 2013-10-04T18:17:59.220 に答える
0

500 内部サーバー エラーは、リダイレクト ループの結果です。

これは、同じページにリダイレクトするため、ルールが常に true になるためです。

^! でルールを追加して、結果のリンクを除外する必要があります。すべての残りの前に。

于 2013-10-04T18:26:25.620 に答える