問題タブ [rewritemap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - データベースからプルするようにApache RewriteMapを設定する正しい方法は何ですか? (PHP/アパッチ/MYSQL)
小さな Web アプリでクリーンな URL を設定しようとしています。現在、URL は次のようになっています。
http://www.mysite.com/productinfo.php?product=19
私はそれらをしたい:
http://www.mysite.com/productinfo.php?product=靴
RewriteMap と PHP スクリプトの両方を作成して、データベースのタイトル列をプルし、それを製品 ID の代わりに URL に挿入して、訪問者を楽しい方法で転送するにはどうすればよいでしょうか?
php - mod_rewrite で現在の PHP セッションをチェックして、画像を直接アクセスから保護する
私は、サーバーのルートから離れたフォルダーに保存されている画像 (この場合は PDF ファイル) にユーザーがアクセスできる可能性があるという問題の解決に取り組んでいます。通常、私のアプリケーションは PHP スクリプトとセッションを通じてユーザーを検証します。現在起こっていないことは、ログインしていないユーザーが PDF に潜在的にアクセスできないようにすることです。
私が探しているソリューションは、(私が思うに) Apache と結びつける必要があります。RewriteMap と RewriteRule を使用した興味深いソリューションを見ましたが、例では、これを PDF ディレクトリの .htaccess ファイルに配置する必要がありました。Apache ではできません (エラー: ここでは RewriteMap は許可されていません)。書き換えディレクティブは、アクセスできる httpd.conf に入れる必要があると思います。
したがって、私が見つけた例 (「rewritemap はここでは許可されていません」という結果になりました) は次のとおりです: RewriteEngine On RewriteMap auth prg:auth.php RewriteRule (.*) ${auth:$1}
auth.php は PHP セッションをチェックし、必要に応じてログイン スクリプトにリダイレクトします。
これをhttpd.confに配置する必要があることを読んでいます。RewriteMap が特定のディレクトリ (サブディレクトリを含む) でのみ発生するように指定するにはどうすればよいですか?
regex - IIS7はマップ正規表現を書き換えますか?
書き換えマップで正規表現を使用することは可能ですか? 例えば:
または、このアプローチを処理する方法はありますか? 現在、すべてに一致するようにルールを設定し、書き換えマップを使用して新しい URL にマップしています。リソースファイル(何とか)など、ディレクトリの下のすべてをキャプチャしたいと思います...それらすべてに対して手動でこれを行う必要はありません。
.htaccess - htaccess で param=NUMBER を /text に書き換える
次のようなものから URL を書き換える方法を見つけようとしています: example.com/collection.php?collection=1
へ: example.com/collection-name.php
最近、e コマース サイトを再設計したので、古い URL を新しい URL にリダイレクトする必要があります。書き換えられた URL で collection=1 の値を使用する方法についての指示をたくさん見てきましたが、値の代わりにテキストを使用する方法については知りませんでした。リダイレクトする必要があるコレクション値は 5 つだけですが、さらに、テキストとして書き換え/リダイレクトする必要がある複数のパラメーターを持つ古い URL もあります。それは理にかなっていると思います。
したがって、最初のリダイレクト設定を取得できれば、それらをすべて解決できると思います。
他の/より複雑な古い URL は次のようになります: example.com/collection.php?collection=1&product=2&item=3
次にリダイレクトする必要があるのは、example.com/collection-name/sub-collection-name/product-name.php です。
これを行う方法が正確にわかりません。.htaccess ファイルに行ごとに書き込みたくありませんが、これを達成する方法が他にわかりません。
前もって感謝します。アンディとこの件に関するすべての助けに感謝します!
EDIT------------------------------------ に提供された情報に基づく私の新しい書き換え条件とルールは次のとおりです自分。これは、3 つの個別の RewriteMap を使用して、すべてのクエリ パラメータを含む URL のルールになります。
何かがおかしい、または何かを見逃した場合はお知らせください。各クエリ パラメータに $1、$2、$3 を使用する必要があるかどうかはわかりませんでした。私はまだ書き換えのあるNOOBです。ありがとう!
編集 - - - - - - - - - - - - - - - - - - - - - - - - - -----
私の .htaccess ファイルで次のコードを使用します。
「example.com/collection.php?collection=1」で始まる私の URL
次のように書き換えられています: example.com/shop/.php?collection=1
私はこれで少し迷っています。リダイレクト マップが読み取られていない可能性がありますか? それとも別のものですか?助けてくれてありがとう。
apache - RewriteLock は、別の方法で動作している Rewrite / Rewritemap に追加されると、再起動時に Apache をハングさせます。
私は Network Solutions VPS を使用しており、4 つのドメイン名が IP を共有しています。動作する Rewrite / RewriteMap のセットアップがあります。書き換えは、var/www/vhosts/example.com/conf/vhost.conf にある example.com Web アドレスのファイルにあり、書き換えは vhost.conf ファイル内の唯一のものです。サーバーのメインの httpd.conf ファイルでは機能しません。
RewriteMap は、ユーザーが入力した URL (http://example.com/bb/cc) のいくつかを使用して、一致するデータベース レコードから 3 番目の情報 (aa) を取得し、その 3 番目の情報を次のように使用します。クエリ文字列を使用してファイルをロードし、クエリ文字列 aa に基づいてファイルを表示している間、最初に入力した URL をアドレス バーに残します。
リライトは次のとおりです。
RewriteMap 行の上または下に次を追加すると:
Apache を再起動しようとすると、ハングし、Apache は再起動しません。私はさまざまなファイルパスを試しました(それはパーミッションの問題である可能性があり、もちろんうまくいくことを願っています)、最初の/を取り除き、引用符で囲み、さまざまなファイルタイプ(つまり、末尾の.txt)、さまざまなファイル名、ほぼ何でも、再起動時にApacheがハングするたびに。Rewrite / RewriteMap はそれがなくても機能しますが、RewriteLock の重要性についてはよく読んでおり、php はログに DANGEROUS で終わる警告を発行して、RewriteLock を使用しないようにしています。
これがマップです(リライトが言う場所にあります):
メインの httpd.conf ファイルを調べたところ、干渉している可能性のある RewriteLock について何も見つかりませんでした。これは、VPS のセットアップに含まれている標準的なものです。
これが RewriteLock と可能な修正なしでのみ機能する理由について誰かが考えている場合は、大歓迎です。
ありがとうグレッグ
apache - URL 書き換えマップ Apache
私はプログラミングにかなり慣れていないので、次の問題に遭遇しました。親切にアドバイスしてください。
www.mysite.com/products.php?cid=3
パラメータの値cid
(ここでは 3) がバックエンド データベースから生成され、1 から 3 までの数値になるような URL を持つ Web サイトがあります。
Apache に URL を書き換えてもらいたいので、次のようにします。
www.mysite.com/nike
にリダイレクトしますwww.mysite.com/products.php?cid=1
www.mysite.com/reebok
にリダイレクトしますwww.mysite.com/products.php?cid=2
www.mysite.com/kswiss
にリダイレクトしますwww.mysite.com/products.php?cid=3
等...
次の内容のルート ディレクトリの下に、category.txtという名前のテキスト ファイルがあります。
および.htaccess
ただし、これは機能しません。アドバイスしてください。
apache - Apache mod_rewritemap 仮想ホスト ファイル
こんにちは、私はこれらすべてに非常に慣れていません。私のウェブサイトは URL を書き換える必要があります。Linux ベースの godaddy に参加しました。
書き換えマップ機能を使いたい。そして、この目的のためにシンテックスを書き込もうとしています
ただし、Apache構成の仮想ホストファイルにコードを配置する必要があることがわかりました。rewriteMapは、httpd.confと仮想ホストにアクセスできる場合にのみ機能します。
これらについてはわかりません。「仮想ホスト ファイル」と httpd.conf はどこにありますか?
誰かが私に明確な手順を教えてもらえますか
ありがとう
iis-7 - フレンドリ URL の IIS7 および rewriteMap
次のエントリを含む外部の「rewritemaps.config」ファイルがあります。
次のような URL を書き換える方法: http://www.domain.com/wheels-and-castors/
次へ: http://www.domain.com/category.asp?catID=2
これは書き換えであり、リダイレクトではないことに注意してください。
最終リライトラインまであと少しだと思いますが、試合やコンディションに苦戦しています。私の現在の最終的な書き換え行は次のとおりです。
(ここで、Cat1 は私の rewriteMap の名前です)
助けてくれてありがとう。乾杯、クリス。
mod-rewrite - mod_rewrite 301 は、何百もの古い非構造化 URL をリダイレクトします
何百もの古い構造化されていない URL を新しい URL にリダイレクト (301) する必要があります。古い URL にはクエリ文字列 domain/directories/randomtext?args=1 があります
oldurl newurl 行を含むファイルがあります。
virtualhostでRewriteMapを試しています
RewriteCond に Querystring を含めることは可能ですか?
私はこのように解決しました:
キャッシュ ルックアップは常に失敗するため、これは改善できると思います。request_uri だけがキャッシュされていると思います。
RewriteLog
apache - RewriteMap を使用した RewriteRule の支援
私は mod_rewrite にかなり慣れていないので、RewriteMap ディレクティブを適切に機能させようとしています。ご利用の参考になれば幸いです。
URL の形式は次のとおりです。
したがって、「Apple iPad」であるセクション 201 の URL は次のとおりです。
私が望んでいるのは、これを次のように書き直すことです。
次の行を使用して、Apache config で RewriteMap txt ファイルを定義しました。
この txt ファイルには、次のものが含まれています。
.htaccess で次の書き換えルールを試みました。
これは機能しません。RewriteRule に問題があるか、設定ファイルの間違った場所に RewriteMap ディレクティブを配置したと思います。助言がありますか?
前もって感謝します
ダニエル