0

わかりやすい方法でパラメーターをPHPページに渡したかったので、これが.htaccessファイルに書き込んだ内容です。

 RewriteRule ^confirm\/(([a-z0-9]).+)\/(([a-z0-9]).+)$ www.example.com/confirm.php?email=$1&order=$2

それはうまく機能しており、PHPでパラメータを取得するには

explode('/', $_SERVER['REQUEST_URI'])

私には2つの問題がありますが

1-このページを送信するときは、confirmation.phpに直接アクセスする必要があります。代わりに、www.example.com / confirm / example @ mail.com / 12-HDYF/confirmaction.phpに送信します。これをどのように変更できますか。

2-ページは元々完全に機能していましたが、わかりやすいURLを入力すると、すべてのjqueryファイルで以下のエラーが発生します。これは実際には無関係のようです。

ここに画像の説明を入力してください

4

2 に答える 2

0

これは、クライアント(ブラウザ)が閲覧しているページを次のように表示www.example.com/confirm/example@mail.com/12-HDYF/し、それを分析してhtmlを解析すると、次のように表示されるためです。

<script src="jquery.js"></script>
<form action="confirmation.php"... >

そのため、ブラウザは現在のページへの相対URLを確認します。したがって、jquery.js現在のフォルダと同じフォルダにあるファイルを検索するように指示すると、彼はからダウンロードしようとしますwww.example.com/confirm/example@mail.com/12-HDYF/jquery.js。フォームを送信すると、同じことが起こります。

これを回避するには、絶対URLを使用します(先頭のスラッシュに注意してください)。

<script src="/jquery.js"></script>
<form action="/confirmation.php"... >

のサブフォルダにファイルがある場合は、DocumentRootそのサブフォルダをURLの先頭に配置します。

于 2013-02-04T15:13:44.227 に答える
0

生のURLとわかりやすいURLの両方で^confirmを回避するように、URL構造を変更します。これにより、デバッグが容易になります(ループを回避できます)。失敗した入力を投稿していないので、これは推測です。

RewriteRule ^orderconf\/(([a-z0-9]).+)\/(([a-z0-9]).+)$ www.example.com/confirm.php?email=$1&order=$2
于 2013-02-04T15:09:41.357 に答える