職場では、あるマシンから別のマシンに移行された ViewVC システムがあります。バージョンもアップしました。古いシステム/cgi-bin/viewvc.cgi
はすべての URL のベースとして使用され、新しいシステムは/viewvc
. ホスト名はそのままです。
ViewVC リンクを含む多くのドキュメントがあり、以前と同じように機能することを望みます。私は日中ソフトウェア開発者なので、Apache の専門家ではありませんが、それmod_rewrite
が正しいルートだと思いました。残念ながら、私はそれを自分のやりたいようにさせることができないようです。
変更を加えていない場合、URL にアクセスすると/cgi-bin/viewvc.cgi
404 が返されます。Apache のログには次のように表示されます。
==> /var/log/httpd/error_log <==
[Thu May 31 03:13:10 2012] [error] [client 172.16.3.52] script not found or unable to stat: /var/www/cgi-bin/viewvc.cgi
==> /var/log/httpd/access_log <==
172.16.3.52 - - [31/May/2012:03:13:10 +0100] "GET /cgi-bin/viewvc.cgi HTTP/1.1" 404 289 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.17 Safari/536.11"
RewriteEngine
以下のように/RewriteRule
エントリを追加すると/etc/httpd/httpd.conf
...
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
RewriteEngine on
RewriteRule ^/cgi-bin/viewvc.cgi(.*) /viewvc$1
</Directory>
403 が表示されます。ログの内容は次のとおりです。
==> /var/log/httpd/error_log <==
[Thu May 31 03:15:35 2012] [error] [client 172.16.3.52] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/cgi-bin/viewvc.cgi
==> /var/log/httpd/access_log <==
172.16.3.52 - - [31/May/2012:03:15:35 +0100] "GET /cgi-bin/viewvc.cgi HTTP/1.1" 403 293 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.17 Safari/536.11"
上記の Options 行を編集して含めるFollowSymLinks
とSymLinksIfOwnerMatch
、404 に戻ります。
==> /var/log/httpd/error_log <==
[Thu May 31 03:17:20 2012] [error] [client 172.16.3.52] script not found or unable to stat: /var/www/cgi-bin/viewvc.cgi
==> /var/log/httpd/access_log <==
172.16.3.52 - - [31/May/2012:03:17:20 +0100] "GET /cgi-bin/viewvc.cgi HTTP/1.1" 404 289 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.17 Safari/536.11"
私は何を間違っていますか?ルールが間違っていますか、それとも間違った場所に配置していますか? mod_rewrite
彼も正しいアプローチですか?
バージョン: 重要な場合のために、私は次のパッケージを含む Fedora 17 マシンを使用しています。
- httpd-2.2.22-4.fc17.x86_64
- viewvc-1.1.13-2.fc17.noarch
- viewvc-httpd-wsgi-1.1.13-2.fc17.noarch