私は週末のほとんどの間、.htaccess に頭を悩ませようとしてきましたが、つまずき続けています。サーバーを 1 セットのルールで動作させることができますが、一度に複数のルールを使用することはできません。
私のアプリケーションはいくつかのページで構成されています:
- ホームページは、オプションのクエリ文字列引数を使用して、詳細ページからコンテンツ (および詳細ページに含まれていないコンテンツ) を取得します。例えば
?s=item-name
- 詳細ページは、オプションのクエリ文字列引数を使用してコンテンツを取得します (ホームページと同じ引数。たとえば、
?s=item-name
これはまったく同じコンテンツを参照します) 。 - コレクションページ
- 関連ページ
これらの各ページは、ドキュメント ルート (index.php、detail.php、collection.php、関連する php) にある php ファイルです。
私が達成したいこと:
mydomain.com/detail/
ユーザーは、代わりにまたはに移動できる必要がありますmydomain.com/detail
(したがって、末尾のスラッシュを許可します)mydomain.com/details.php
- 存在する場合、クエリ文字列引数 (
?s=item-name
) は、ページの末尾のスラッシュの後に入力する必要があります (したがってmydomain.com/item-name
、mydomain.com/?s=item-name
;mydomain.com/detail/item-name
の代わりにmydomain.com/detail.php?s=item-name
.
これは、私の.htaccessファイルが現在どのように見えるかです。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?s=$1 [L]
</IfModule>
これにより、ホームページは正しいコンテンツを取り込むことができます。どのページでも同じことができるようになるのはそれほど遠くないと確信していますが、私にはそれがよくわかりません.
誰でも助けることができますか?