0

CMS を通じて追加するコンテンツの一部について、ユーザーに分かりやすい URL を指定してもらいたいと考えています。しかし、.htaccess は私の得意分野ではありません (私は通常、疫病のように避けています)。

これが私がこれまでに持っているもので、ほぼ完全に機能しています。

RewriteEngine on
RewriteRule    ^arg/([0-9a-z\-]+)/?$    index.php?arg=$1    [NC,L]

明らかに、本番環境でこれを指定するために " " を使用することはないでしょう/argが、すべての意図と目的のために、現時点では機能します。

これはおそらく言うまでも ありindex.php?arg=some-argumentませんが、通常は次のように見えるすべてのリクエスト/arg/some-argumentは、まさに私が望んでいるものではありません。

ここに問題があります

今 - ユーザーがindex.php引数を渡さずに終わった場合 - それは 404 です。一般的な 404 に送信するのではなく、ページ固有のオプションのリストをエンド ユーザーに提示したいと考えています。

編集:うまくいく ものを見つけたので、質問に答えました-しかし、誰かが何が起こっているのかを正確に分析できるか、または私がこれを正しい方法で行っていることを検証できるかどうか、私の答えで起こっていることすべてを完全には理解していません- 私はそれをお願い申し上げます。

4

1 に答える 1

0

かなりの検索の後-私は自分の答えを見つけました、そしてそうです-それは私が思っていたのと同じくらい簡単でした(あなたが十分に掘り下げたりグーグルで調べたりしたとき)。

RewriteCondクエリ文字列を確認するために使用する必要がありました。ここで起こっていることすべてをまだ完全には理解していませんが、これは望ましい結果をもたらしました。

コード

RewriteEngine on
RewriteCond %{THE_REQUEST} ^GET /.*;.* HTTP/
RewriteCond %{QUERY_STRING} !^$
RewriteRule    ^arg/([0-9a-z\-]+)/?$    index.php?arg=$1    [NC,L]    # Handle product requests
于 2013-07-08T05:07:15.947 に答える