0

mod rewrite でブラウザにリンクが正しく表示されない問題があります

私はいつもこのように自分のページにリンクを貼っています

 http://domain.com/contact-us.html

そして、これを私の.htaccessファイルで使用します

 Options FollowSymLinks
 RewriteEngine On
 RewriteRule ^([^.]+)\.html$ http://domain.com/index.php?h=$1 [L]

スラッグ「contact-us」を取得して使用するために、index.php ページで h 変数を要求します。

 $h = htmlspecialchars($_REQUEST['h'], ENT_QUOTES, 'UTF-8', false);
 $h = preg_replace('/[^-a-z0-9_]/i','',$h);

これは常に正常に機能しており、引き続き domain.com/contact-us.html がブラウザーに表示されます。

1 と 1 でサイトを読み込んだところ、domain.com/contact-us.html ではなく domain.com?h=contact-us がブラウザーに表示されます。リンクが正しく表示されていないことを除いて、すべてが機能しています

4

1 に答える 1

0

わかりましたが、将来役立つかもしれません。最初に各テストでキャッシュをクリアします

 Options FollowSymLinks
 RewriteEngine On
 RewriteRule ^([^.]+)\.html$ /index.php?h=$1 [L]

ドメインを含めないでください。私の場合、Web サイトは public_html フォルダーの 1 レベル上にあったため、ドメインを含める必要があると考えました。

追加した

RewriteBase /

うまく機能する最終的なコード

 Options FollowSymLinks
 RewriteEngine On
 RewriteBase /
 Options FollowSymLinks
 RewriteEngine On
 RewriteRule ^([^.]+)\.html$ /index.php?h=$1 [L]
于 2012-10-28T00:47:42.690 に答える