• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessの書き方について)

.htaccessでURLの内容を変更する方法

このQ&Aのポイント
  • URLをそのまま保ちつつ、指定のディレクトリ以下のファイルを表示するための.htaccessの書き方について説明します。
  • いくつかの試みをしたもののうまく動作しない場合、設定に問題がある可能性があります。以下の方法を試してみてください。
  • RewriteRuleを使用して指定のディレクトリ以下のファイルを表示するようにリダイレクトする方法について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.4

> RewriteRule ^([^img^css].*)/(.*)$ /main/$1/$2 では無く RewriteBase / RewriteRule ^main/.* - [L] RewriteRule ^img/.* - [L] RewriteRule ^css/.* - [L] RewriteRule ^(.*)/(.*)$ /main/$1/$2 とした方が見やすく、何がしたいのか判断しやすい設定だと思います。 > http://www.example.com/main/abc/ の場合 > URLは http://www.example.com/abc/ になり、内容は/main/abc/を表示することって可能でしょうか? RewriteRuleが無限ループになってしまうので難しいでしょう。 もしやりたいのであれば、Aliasとmod_rewriteの組み合わせで処理させるのが良いのではないでしょうか。

genuine2010
質問者

お礼

ありがとうございます。 mod_rewriteでは無理ですかね。 もう少しいろいろ試してみようとおもいます。 この度は、丁寧に教えていただいてありがとうございました。

その他の回答 (3)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.3

> ただ、 > http://www.example.com/aaa.html > などは、そのまま表示したいのですが、可能でしょうか? 私の環境では、ルートディレクトリにあるHTMLファイルはそのまま表示できていますよ。

genuine2010
質問者

お礼

ありがとうございます。 http://www.example.com/img/~とhttp://www.example.com/css/~を読み込んでいないだけで、以下にすると表示できました。 RewriteBase / RewriteRule ^main/.* - [L] RewriteRule ^([^img^css].*)/(.*)$ /main/$1/$2 ちなみにですが、上記をした上で、 http://www.example.com/main/abc/ の場合 URLは http://www.example.com/abc/ になり、内容は/main/abc/を表示することって可能でしょうか?

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

これでどうでしょうか RewriteBase / RewriteRule ^main/.* - [L] RewriteRule ^(.*)/(.*)$ /main/$1/$2

genuine2010
質問者

お礼

ありがとうございます! できました! ただ、 http://www.example.com/aaa.html などは、そのまま表示したいのですが、可能でしょうか?

回答No.1

これだけでは動きません。 コピペで申し訳ありませんが・・・これを参考にしてみてください。 RewriteCond %{REQUEST_URI} !^/(attach|cache|image|skin) RewriteRule ^\?(.*)$ /index.cgi?$1 [L] RewriteCond %{REQUEST_URI} !^/(attach|cache|image|skin) RewriteRule ^(.+)/$ /index.cgi/$1 [L] RewriteCond %{REQUEST_URI} !^/(attach|cache|image|skin) RewriteRule ^$ /index.cgi [L] ---- 似たもの・・・ RewriteCond %{REQUEST_URI} !^(attach|cache|image|skin) RewriteRule ^\?(.*)$ /cgi-bin/w?$1 RewriteCond %{REQUEST_URI} !^(attach|cache|image|skin) RewriteRule ^(.+)/$ /cgi-bin/w/$1 RewriteCond %{REQUEST_URI} !^(attach|cache|image|skin) RewriteRule ^$ /cgi-bin/w ---- 別のもの ちょっと古いものですが・・・ RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR] RewriteCond %{HTTP_USER_AGENT} ^Pixo-Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^Semulator [OR] RewriteCond %{HTTP_USER_AGENT} DoCoMo [OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} voda [OR] RewriteCond %{HTTP_USER_AGENT} Voda RewriteRule ^(.*)\.html$ /cgi-bin/view.cgi?$1.html [T=application/x-httpd-cgi] RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR] RewriteCond %{HTTP_USER_AGENT} ^Pixo-Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^Semulator [OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} voda [OR] RewriteCond %{HTTP_USER_AGENT} Voda RewriteRule ^$ /cgi-bin/view.cgi?index.html [T=application/x-httpd-cgi] RewriteCond %{HTTP_USER_AGENT} ASTEL [OR] RewriteCond %{HTTP_USER_AGENT} PDXGW [OR] RewriteCond %{HTTP_USER_AGENT} DreamPass [OR] RewriteCond %{HTTP_USER_AGENT} AVE-Front [OR] RewriteCond %{HTTP_USER_AGENT} WebTV [OR] RewriteCond %{HTTP_USER_AGENT} L-mode RewriteRule ^(.*)\.html$ /block/no.htm [L] #RewriteCond %{HTTP_USER_AGENT} Googlebot [OR] RewriteCond %{HTTP_USER_AGENT} Lycos_Spider [OR] RewriteCond %{HTTP_USER_AGENT} inktomi [OR] RewriteCond %{HTTP_USER_AGENT} moget [OR] RewriteCond %{HTTP_USER_AGENT} Infoseek [OR] RewriteCond %{HTTP_USER_AGENT} Architext [OR] RewriteCond %{HTTP_USER_AGENT} DiaGem [OR] RewriteCond %{HTTP_USER_AGENT} MSIECrawler [OR] RewriteCond %{HTTP_USER_AGENT} wget [OR] RewriteCond %{HTTP_USER_AGENT} PerManSurfer [OR] RewriteCond %{HTTP_USER_AGENT} Pockey-GetHTML [OR] RewriteCond %{HTTP_USER_AGENT} ^Java [OR] RewriteCond %{HTTP_USER_AGENT} WebAuto RewriteRule ^(.*)\.html$ /block/robot.htm [L] RewriteCond %{HTTP_USER_AGENT} BrowserCrasher RewriteRule ^(.*)\.html$ /block/bc.htm [L] RewriteCond %{HTTP_REFERER} ime\.st [OR] RewriteCond %{HTTP_REFERER} ime\.to [OR] RewriteCond %{HTTP_REFERER} ime\.nu [OR] RewriteCond %{HTTP_REFERER} 2ch\.net RewriteRule ^(.*)\.html$ /block/index-2ch.htm RewriteCond %{HTTP_REFERER} jbbs.shitaraba RewriteRule ^(.*)\.html$ /block/index-shitaraba.htm

参考URL:
http://sourceforge.jp/cvs/view/pyukiwiki/PyukiWiki-Devel/.htaccess?view=log