サーバーを再起動せずに他のファイルを介してリダイレクトが機能するように、次のコードスニペットを使用してWebインスタンス構成ファイルを構成しました。
RewriteMap redirects txt:/mnt/var/www/html/abc/content/abc/na/ac/config_en_us/redirects/redirects.txt
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond ${redirects:%1} >""
RewriteRule ^(.*)$ ${redirects:%1} [R=301,NC,L]
コードスニペットを挿入した後にhttpdを再起動しようとすると、Apacheを起動できません。他のサーバーでも同じコードを実行できます。ファイルも作成され、権限を確認しました。
以下はエラー内容です
/etc/httpd/conf.d/abc.conf 行 69 の構文エラー: RewriteMap: マップリダイレクトファイルが見つかりません: /mnt/var/www/html/abc/content/abc/na/ac/config_en_us/redirects /redirect .txt
最後にサーバーを起動できましたが、修正が正しくありませんでした。これが私がすることです。
/etc/httpd/conf.dパスに同じ名前の同じファイルを作成し、目的のパスに移動した後、Apacheがファイルを見つけることができたことがわかりました。誰もが何が起こっているのかを理解するのに役立ちますか?
答え1
わかりやすくするために、この回答はFoxのコメントからのものです。
「ユーザーApacheが実行されているため、ファイル自体には読み取り権限が必要です。ファイルパスのすべてのディレクトリには読み取りと実行権限が必要です。」
はい。CentOSにはファイルがありますが、/etc/http/conf/
パスは上記のように設定されていません。私はそれを/var/www/
(以前に正しく設定した)に移動して動作しました。