このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

URLをwwwなしに統一(mod_rewrite) このメッセージに返信する
日時: 2010/12/25 10:48
名前: ProxyPassさん
URL:
URLを「wwwなしでアクセス」するよう統一するため、
httpd-vhosts.confに以下の設定をしています。
#@の箇所です。

しかし、http://www.hogehoge.org/ でアクセスした場合、http://hogehoge.org//となります。(スラッシュが二重)。
下記設定ファイルのAをコメントにしてみて試してみましたが、同じ現象です。
http://www.hogehoge.org/ でアクセスした際のアクセスログやFirefoxのlive http headerにも何も表示されず分かりません。
なぜでしょうか?
ご存知の方ご教示お願いします。

******************************************************************************
<VirtualHost *:80>

ServerName hogehoge.org
DocumentRoot "/usr/local/apache2.2/htdocs"
ErrorLog "logs/hogehoge.org-error_log"
CustomLog "logs/hogehoge.org-access_log" combined env=!no_log
SetEnvIf Request_URI "\.(gif|jpg|png|JPG|ico|css|js|swf|txt)$" no_log

<Location />
Order Allow,Deny
Allow from all
</Location>

ProxyPass / ajp://localhost:8009/examples/

RewriteEngine on
#@ wwwなしで統一
RewriteCond %{HTTP_HOST} ^www.hogehoge\.org
RewriteRule ^(.*)$ http://hogehoge.org/$1 [R=301,L]

# A末尾がスラッシュで終っていないURI、かつ、.(dot)が付いていないURIは、末尾にスラッシュを補完する。
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.[^/\.]+$
RewriteRule .* %{REQUEST_URI}/ [L,R]

#B動作にtomcatが必要な拡張子はtomcatへ飛ばす。
RewriteCond %{REQUEST_URI} (.*)\.do(.*)
RewriteCond %{REQUEST_URI} (.*)\.jsp(.*)
RewriteRule ^/(.*) ajp://localhost:8009/examples/$1 [P]

</VirtualHost>
******************************************************************************
記事編集 編集
Re: URLをwwwなしに統一(mod_rewrite) このメッセージに返信する
日時: 2010/12/25 14:52
名前: stranger
URL: http://ja.528p.com/
ここは参考になりませんか
http://yokku.net/2008/03/09/223150.html

追伸 同じように//になってしまいます
記事編集 編集
Re: URLをwwwなしに統一(mod_rewrite) このメッセージに返信する
日時: 2010/12/25 17:01
名前: ProxyPassさん
URL:
>>strangerさん
レスありがとうございます。

そのURLをもとにやってみましたが同じ現象でした。
tomcatを使ってるんでその影響でしょうかね。。。
記事編集 編集
Re: URLをwwwなしに統一(mod_rewrite) このメッセージに返信する
日時: 2010/12/25 17:47
名前: stranger
URL: http://ja.528p.com/
ドメイン名だけの場合の補完のようです
http://www.hogehoge.org/foo
のような場合は//fooにはなりません
記事編集 編集
Re: URLをwwwなしに統一(mod_rewrite) このメッセージに返信する
日時: 2010/12/27 12:58
名前: ペングイン
URL: http://blog.trippyboy.com
ProxyPass様

> #@ wwwなしで統一
> RewriteCond %{HTTP_HOST} ^www.hogehoge\.org
> RewriteRule ^(.*)$ http://hogehoge.org/$1 [R=301,L]

上記のうち

> RewriteRule ^(.*)$ http://hogehoge.org/$1 [R=301,L]


 RewriteRule ^/(.*)$ http://hogehoge.org/$1 [R=301,L]
 または
 RewriteRule ^(.*)$ http://hogehoge.org$1 [R=301,L]

にしてみてください。
記事編集 編集
Re: URLをwwwなしに統一(mod_rewrite) このメッセージに返信する
日時: 2010/12/27 20:03
名前: ProxyPassさん
URL:
>>ペングインさん

>RewriteRule ^/(.*)$ http://hogehoge.org/$1 [R=301,L]
これで要件を満たせました!
ありがとうございました!
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -