表示するコンテンツを決定するパラメータを取得するページを作成しています。HTAccess getパラメータを使用した書き換えルール
http://www.domain.com/elections/candidate-speech/candidate-name/
を、私は前にこれを行っている
http://www.domain.com/elections/candidate-speech.php?name=candidate-name
ページにリダイレクト:より良い探してURLを作成するために、私は、URLは以下のように見えることができるようにhtaccessファイルを使用しています私は別のページに書いたが、同様の望ましい構造を持つルールを再利用していました。私が使っているルールは次のとおりです。
RewriteEngine On # Turn on Rewriting Engine
RewriteRule ^candidate-speech/([A-Za-z0-9-]+)/?$ candidate-speech.php?name=$1
私が直接候補者の名前を意図したURL(http://www.domain.com/elections/candidate-speech.php?name=candidate-name
)をロードする場合は、私が意図したとおりに表示されたページを取得します。ただし、短縮版を使用しようとすると正しいページが表示されますが、$_GET
には何も表示されません。
.htaccessファイルは、該当する.phpファイルと同様に、electionsディレクトリに格納されます。これは、このルールが成功した過去の設定と同じです。私はhtaccessをかなり新しくしています。それが私の前回の成功に後退している理由です。私はサーバーを再起動し、キャッシュをクリアしました。無駄に。私は何が間違っていますか?
'election/.htaccess'に他のルールはありますか? '[L]'フラグを 'candidate-speech.php'ルールの末尾に追加してください(そうでなければ正しく見えます)。一部のブラウザでは、リダイレクトをクリアしたにもかかわらず、リダイレクトをキャッシュすることについて実際に積極的です。私は別のブラウザやプライベートブラウジングウィンドウでこれを試してみよう。 –
もしあなたがまだそれをしていないのであれば、 '$ _GET'に何が(まったく何も)存在しないかを確かめるために' var_dump($ _ GET); 'を必ず実行してください。 –
ページにすべてのプレースホルダ情報が出力されたら、最初に$ _GETでvar_dumpを実行しました。 他の唯一のルールは、投稿されたルールの複製ですが、入力と出力の両方のURLにcandidate-speechの代わりにcandidate-speech-wkを使用しています(私は、何かが間違っている場合に使用できる作業ファイルを持っていますライブ) –