ホスティング サーバーの内部書き換えに問題があります。これは私の開発およびテスト サーバーでは完全に機能しますが、.htaccess が運用共有ホストに移植されると、内部の書き換えは行われません。
.htaccess が読み取られている (検証済み) 「リダイレクト」を伴う RewriteRule は機能しますが、内部の書き換えは機能しません。ブラウザの URL には正しいフレンドリ URL が表示されますが、内部の書き換えは行われておらず、ホームページに行き着いています。
ここにリライトの一部があります:
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]
RewriteRule ^contact/$ index.php?pid=3 [QSA,L]
したがって、ブラウザの URL には www.mydomain.com/contact/ が表示されますが、ホームページにいます。
RewriteRule ^contact/$ を ^contact/$ http://www.mydomain.com/index.php?pid=3に変更すると、リダイレクトされますが、それは私が望むものではありません..内部の書き換えが必要です。
ログを見ると、404 を受信していないため、ディレクトリのベース/ルートにアクセスしているように見えます。
何か案は??
ありがとう!ハンジ
更新: ホスティング プロバイダーから電子メールを受け取りました。彼らは私の「スタイル」の書き直しに慣れていないことを示しており、これは彼らが提案したものです:
RedirectPermanent /contact/ http://www.mydomain.com/index.php?pid=3
うーん...ばか。書き直しが機能しない原因を特定できることを願っています。Apacheの設定の問題だと思いますか?助けてください。