1

URLを書き換えようとしていますが、ホスト(1and1)と.htaccessファイルの経験が少ないと問題が発生します。

/news具体的には、ファイルがあるディレクトリに.htaccessファイルを設定しようとしていshow.phpます。私の目的はに変換するwww.example.com/news/blahblahことwww.example.com/news/show.php?article=blahblahです。

これまでの私の.htaccessファイルは次のとおりです(編集:私の.htaccessを更新しましたが、まだ解決策はありません):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^/news/([a-z0-9_-]+)$ /news/show.php?article=$1 [L,NC]
</IfModule>

モジュールを有効にする方法の詳細についてホストにメッセージを送信しましたが、モジュールを有効にするにはこれらの行を入力する必要があるとホストから返信されました。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</IfModule>

RewriteBaseを試して、残りの行をファイルに追加しましたが、これまでのところ結果が得られませんでした。私は.htaccessコーディングに慣れていないので、これらのコマンドについてはよくわかりません。また、チュートリアルでは質問に答えられないようです。そのため、私が間違っていることを理解するのに役立つことを心から感謝しています。

編集:フォルダにある.htaccessを更新しました。ルートフォルダにサポートのファイルもアップロードしましたが、結果がありません。それでも404NotFoundエラーが発生します。

4

2 に答える 2

3

追加した行は必要ありません。おそらくいくつかのことが問題になっているようです。どちらのmod_rewriteもロードされないため、<IfModule>ブロックは実行されません。または、htaccessファイルが無視されています。

<IfModule mod_rewrite.c>と行を削除したかどうかがわかるはずです</IfModule>。その後、ページに移動してみてください。500サーバーエラーが発生した場合は、mod_rewriteがロードされておらず、リライトステートメントが認識されないためにサーバーがpukingしていることを意味します。それ以外の場合は、htaccessファイルにジバーリッシュを追加してみてください。エラーがまったく発生しない場合は、htaccessファイルが無視されているように見えます。

共有ホスティングを利用しているので、1and1サポートに連絡する必要があります。彼らが共有ホスティングをどのように実行しているかはわかりませんが、モジュールがロードされていない場合は、次のようにリライトモジュールをロードする必要があります。

LoadModule rewrite_module modules/mod_rewrite.so

それ以外の場合は、ドキュメントルートをオーバーライド可能にする必要があります。

AllowOverride All

htaccessファイルがURIを書き換えられるようにします。


編集:

ルートフォルダには.htaccessがなく、/newsフォルダだけです。

これが問題です。ルールを次のように変更する必要があります。

RewriteBase /news/
RewriteRule ^([a-z0-9_-]+)$ show.php?article=$1 [L,NC]
于 2012-12-07T02:03:44.590 に答える
1

解決策を見つけました。サポートから提供されたものだけを含む.htaccessファイルをルートフォルダーにアップロードし、ニュースフォルダーにも自分の.htaccessファイルをアップロードしましたが、機能しました。ニュースフォルダの正しい.htaccessは次のとおりです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /news/

RewriteRule ^([a-z0-9_-]+)$ show.php?article=$1 [L,NC]
</IfModule>
于 2012-12-07T04:35:14.847 に答える