問題タブ [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.
apache - Apache mod_rewrite と RewriteMap の使用法
初めてrewriteMapでURL書き換えを行います。http://example.com/mysite/mods/abc.html
上記のコードがありますが、ブラウザで実行すると 404 ページが返されます。上記のコードを apache 構成の仮想ホスト ファイルに入れました。いくつかのフォーラムで、 httpd.confと仮想ホストにアクセスできる場合にのみ rewriteMap が機能することを読みました。.htaccess ファイルで定義されたルールを実行できたため、mod_rewrite が Windows マシンで実行されています。
map.txtには
apache - RewriteMapを使用したApacheRewriteRule
私はRewriteMap
このように見えるものを持っています:
そして私はそれをApache
viaに含めています
この位置にRewriteRule
あると言われる左側の値のみを許可するを作成したいと思います。RewriteMap
${legacy}
右側で使用できることはわかっていますが、左側で使用できますか?その場合、どのように使用しますか?
.htaccess - mod_rewrite は、一致しないものすべてを rewritemap に送信します
通常のもので始まるhtaccessファイルがあります:
次に、いくつかの書き換えがあります。
その後、rewritemap で終了します。
rewritemap には、すべての従来の URL (現在のサイトのページと、新しいサイトの同等のページにリダイレクトされる短い URL) が含まれています (約 4k あるため、マップを実際に使用する必要があります)。
問題は、rewritemap が有効になっている (つまり、コメントアウトされていない) 場合、すべての URL (一致しないものも含む) が / にリダイレクトされ、スタイルシート、js、画像などを含むことです。
私が求めているのは、マップ内のパターンに一致する uris が置換にリダイレクトされ、他のすべてが通過する (つまり、同じままである) ことです。
マップにデフォルトの $1 を設定してみました:
しかし、これはリダイレクト ループを引き起こすだけです。すべての .css、.js、.jpg などの書き換えをスキップすることもできると思いますが、使用されているファイル拡張子のリストを維持する必要はありません。
参考までに、私は HeliconTech の ISAPIRewrite を使用していますが (私は IIS 6 を使用しているため)、Apache に従って rewritemaps を処理すると主張しており、過去に問題が発生したことはありません。
どんな助けでも大歓迎です!
ありがとう、アダム
apache - rewritemap が一致しません
rewritemap が一致しないことに問題があります:
マップには、以下を含む約 4,500 のエントリがあります。
レベル 9 に設定された私の RewriteLog は次のように記録します。
マップにないページ (例: /Contact-Us.aspx) では機能しますが、一致するはずのもの (北極圏など) では機能しません。[NC] フラグの場所を変更して、RewriteCond を削除し、マップ ファイルの名前を変更してみました ('map' が予約済みキーワードであった場合に備えて)。喜びはありません。また、権限の問題ではないようです。
参考までに、私は IIS6 を使用しているため、Helicontech の ISAPIRewrite を使用しています。
php - データベース ルックアップ スクリプトを使用して URL を Mod_ReWrite / ReWriteMap する
シナリオ
古い既存の ASP の従来の e コマース Web サイトを PHP に完全に書き直しました。
以前のサイトのデータベース設計には、データベース内の他のテーブルへの製品データ行の面倒なリンクを引き起こすリレーショナル ID の問題が多数ありました。
これを回避するために、データベースを再設計し、製品に新しい主キーを与えながら、製品の古い PK を含む列をテーブルに保持しました。
問題
私が抱えている問題は、サイトが再開されたときです。以前は「Product.asp?ProductID=29」を指していたすべての検索エンジン リンクを使用して、データベースを検索し、製品の古い PK を照合し、製品にリダイレクトする必要があります。新しい PK、つまり「Products.php?ID=53」。
Mod_ReWrite/ReWriteMap でこれを実行しようとしていますが、オンラインで見つけることができるすべてのドキュメントには、データベース スクリプト PK ルックアップの処理方法が記載されていません。
更新http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap
> 外部書き換えプログラム
で Ignacio Vazquez-Abrams の提案をさらに読みましたが、それは正しく、理想的であるようです解決。
ただし、ホストに連絡した後、サーバーで有効にしません。ReWriteMap
私は自分自身を提供しましたが、ReWriteMap
有効にせずにこれを達成するための最良/正しい解決策ではありません。
php - mod_rewrite により Rewritemap prg ディレクティブで Apache がクラッシュする
アパッチ構成:
実行可能ファイルを設定するという明白な問題を修正しましたが、現在は次のようになっています。
[Fri Feb 12 01:55:31 2010] [error] (2) No such file or directory: exec of '/var/www/lib/allow.php' failed
しかし、ファイルは明らかに存在します。
.htaccess - mod-rewrite で RewriteMap が機能しない
htaccess で RewriteMap ディレクティブを使用して単純なマッピングを実行しようとしていますが、何らかの理由で毎回エラー 500 が発生します。私の構文は .. オプション +FollowSymLinks
nklist.txt で:
nklist.txt ファイルは、htaccess がある場所と同じ、私の Web サイトのルートにあります。デバッグの結果、htaccess が nklist.txt ファイルを見つけられないことがわかりましたが、助けていただければ幸いです。
.htaccess - htaccess または httpd.conf による基本的な静的から静的への書き換え (またはリダイレクト)
あるサイト言語/CMS (coldfusion/custom) から別の (PHP/Drupal) に移行しており、古いページの一部を新しいページにリダイレクトする必要があります。これは Linode の vps であるため、.htaccess と httpd.conf (および apache2.conf) の両方にアクセスできます。
それらのほとんどは正規表現 (URL に GUID が含まれている) では実行できず、静的リダイレクトを記述しても問題ありません。
次に例を示します。
それだけです...開始キャレット^、終了ドル記号を使用して構文を試しましたが、どれも機能していないようです。
RewriteCond が果たす役割について誤解している可能性があります。.htaccess には既に他の行があります。
RewriteRule を指定したら、RewriteCond を再宣言する必要がありますか?
また - 理想的には、.htaccess のクリーンさを維持するために、RewriteMap を使用したいと思います。ここでは、1 つのテキスト ファイルを指定し、「古い URL | 新しい URL」のタブ区切りの列を 2 つだけ持つことができます。それも機能しません(使用するのが適切である場合でも)。
どんなアイデアでも大歓迎です...
php - Apache mod_rewrite: Windows マシンで PHP スクリプトを使用する RewriteMap ディレクティブ
これは私を狂気に駆り立てています。Windows 上の php スクリプトで RewriteMap ディレクティブを機能させることができないようです。これは、私の httpd.conf ファイルからの関連するスニペットです。
私の単純な php スクリプトは次のようになります。
Apache を起動しようとすると、エラー ログに次の行が表示されます。
[エラー] (OS 193)%1 は有効な Win32 アプリケーションではありません。: mod_rewrite: RewriteMap プログラムを開始できませんでした C:/dev/web/www/routing.php 設定に失敗しました
apache のドキュメントでは、インタープリターを指すスクリプトの最初の行である「マジック クッキー トリック」(「外部書き換えプログラム」という見出しの下) について言及しています。これは私が間違っているところですか、それとも RewriteMap ディレクティブを別の方法で呼び出す必要がありますか?
apache - htaccess ファイルで RewriteMap を使用する
htaccess ファイルで RewriteMap ディレクティブを使用するにはどうすればよいですか? そこに置くと、「RewriteMapはここでは許可されていません」というエラーが表示されます。
このエラーを httpd.conf または virtualhost 構成ファイルに入れると消えることはわかっています。しかし、htaccessに入れることが可能かどうか知りたいですか?