2

「blog」という名前のサブディレクトリがあります。WebブラウザでこのディレクトリにアクセスするときにURLをクリーンアップしたいと思います。だから私がタイプするときにそれが欲しい

www.example.com/blog/index.php?id=1

webbroswerは次のように表示する必要があります。

www.example.com/blog/posts/1

サブディレクトリがない場合はこれを正常に実装しましたが、サブディレクトリの場合は404エラーが表示されます。

ここでは、ルートディレクトリ(サブディレクトリではなく)に実装したときに.htaccessファイルを機能させるために行ったことを示しています。

RewriteEngine On
RewriteRule ^posts/([^/]*)$ /index.php?id=$1 [L]

そして私はindex.phpファイルに私のURLを次のように書きました

echo '<a href="www.example.com/posts/' . $row['id'] . '">' .  $row['title']  . '</a>';

しかし、問題は、「blog」という名前のサブディレクトリに同じものを実装しようとすると、404エラーが表示されることです。

で試しruleまし.htaccessたが、うまくいきませんでした。

RewriteCond %{REQUEST_URI} !^/blog/.*$
RewriteRule ^(.*)$ /blog/$1 [L]

.htaccessファイルを。という名前のサブディレクトリに保存していますblog

でたくさんの質問を試しましStackOverflowたが、どれも私の問題を解決していないようです。どんな助けでもいただければ幸いです。

4

1 に答える 1

2

持っていたルールに書き換えベースを追加します。

RewriteEngine On
RewriteBase /blog/
RewriteRule ^posts/([^/]*)$ index.php?id=$1 [L]

これらは、ディレクトリのhtaccessファイルにあります/blog/

そして、index.phpで、次のようなリンクを生成していることを確認してください。

echo '<a href="www.example.com/blog/posts/' . $row['id'] . '">' .  $row['title']  . '</a>';
于 2012-08-31T05:54:47.777 に答える