0

Apache 2.2 の mod_rewrite モジュールに問題があります。私のコードは localhost (Win8 Pro の Wamp、IPv6) でも webhotel (site5.com) でも動作しません。私の目標は、SEO フレンドリーな URL を次のように生成することです。

www.xy.com/featured-artists.html

それ以外の:

www.xy.com/index.php?pageID=アーティスト

PHP 変数 $pageID は、私の index.php の 1 行目に定義されています。

<?php isset($_GET['pageID']) ? $pageID = $_GET['pageID'] : $pageID = 'Forside';?>

私の .htaccess ファイルの書き換えのコードは次のようになります。

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule ^([^/.]+)/?$ /index.php?page=$1
</IfModule>

残念ながら、それはサイトには何の影響もありません。ただし、.htaccess ファイルは適切に機能しています。

ErrorDocument 404 /index.php?pageID=404

期待どおりに動作します。私が何をしても - それはうまくいきません。ですから、皆さんの何人かがそれを手伝ってくれることを本当に願っています。

ありがとう!

4

1 に答える 1

1

Mod_rewrite がオンになっていないようです。ルールはコンテナにIfModule含まれています。

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule ^([^/.]+)/?$ /index.php?page=$1
</IfModule>

したがって、ルールは実行されません。ルールを機能させたい場合は、サーバー構成 (または Web ホスト) で mod rewrite を有効にする必要があります。それ以外の場合は、何を試しても問題ありません。

mod_rewrite をロードしたら、ルールは希望どおりに動作するはずです。を取り/something、内部的に に書き換えます/index.php?page=somethin

于 2013-01-04T20:30:57.773 に答える