0

私はサイトを開発しており、URL を書き直して見栄えを良くし、アクセスしやすくしようとしています。

まず、PHP では rawurlencode と rawurldecode を使用して URL をサニタイズしています。

次に、私の .htaccess ファイルで、これは私が使用している RewriteRule です:

RewriteRule ^(/(/[^/]*/?)?)?([^/]+[a-zA-Z0-9])/(albums)/(.*)$ /name.php?name=$3&page=photos&album=$5 [L]

まず、これは 1 つの URL を除いて私が試したすべてのもので完全に機能しますが、その理由はまだよくわかりません。

問題の URL はhttps://domain.com/name/albums/album%3B.%2Fです。

今、私は .htaccess に ErrorDocument を設定しましたが、通常はそのドキュメントに移動することすらありません。404 エラーがドメイン ホストの通常のエラー ページに表示されます。URLがサニタイズされているため、これが機能しない理由を理解しようとしているため、この問題の原因はわかりません.

URL の最後の部分が "album;./" からエンコードされていることに疑問がある場合に備えて...

発生しているこのエラーを修正する方法について提案がある場合は、お知らせください。事前に返信をいただければ幸いです。

4

1 に答える 1

1

ルールにNEフラグを追加して%3B.%2F、クエリ文字列に次のように再エンコードされないようにしてください%253B.%252F

RewriteRule ^(/(/[^/]*/?)?)?([^/]+[a-zA-Z0-9])/(albums)/(.*)$ /name.php?name=$3&page=photos&album=$5 [L,NE]
于 2012-10-23T23:18:25.503 に答える