現在、PHPでサイトを制作していましています。
URLをHTML表示にしようと思い、htaccessを下記のように記述して試しています。
RedirectMatch 301 ^([^.]*[^/])$ $0/
RewriteEngine on
RewriteRule ^([0-9A-Za-z)]+)¥/$ test.php?hensu=$1 [L]
問題というのが、上記の設定だと「 http://test.com/$1/」という形で表示できるのですが、
同一フォルダ内のフォルダがエラーとなって見れなくなってしまいます。
http://test.com/abc/
上記のabcというフォルダがあるのですが、abcを変数と読まれて悩んでいます。
うまく説明できないのですが、分かる方回答お願いします。
http://www.net-newbie.com/trans/mod_rewrite.html
Apache module mod_rewrite
すみません。何度か質問を読んだのですが、
理解できませんでした。
「具体的に、XXXというアクセスがあったら、
YYYにアクセスさせたい」という書き方のほうが
解りやすそうです。
http://www.hatena.ne.jp/1125239943
人力検索はてな - <mod_rewriteの書き方> 例えば、http://www.AAA.com/ にアクセスした際に http://AAA.com (wwwなし)にリダイレクトするように mod_rewrite を使って設定するには、具体的..
過去にこんな質問が出ていたみたいです。
こちらも参考にどうぞ。
.htaccessでhttp://test.com/XXX/のXXX/はフォルダ指定ではなく引数読み込みのみだと指定してますので、いくらabcというフォルダにアクセスしたくともhttp://test.com/abc/ではアクセスできない形になっているかと思います。
こういう場合は、無理なのでしょうか・・・
http://www.sixapart.jp/movabletype/manual/mt31.html
Movable Type 3.2 マニュアル - Movable Type 3.1 の新機能
RewriteCond と組合わせると良いようです。
ディレクトリに対するアクセスは何もしない
ファイルへのアクセス(とみなされる)ものはルールで置き換えるという具合に。
具体的には、
RedirectMatch 301 ^([^.]*[^/])$ $0/
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9A-Za-z)]+)¥/$ test.php?hensu=$1 [L]
こんな感じです。
とりあえず家のイントラサーバでは上手くいきましたよ。
http://japache.infoscience.co.jp/rewriteguide/
Apache URL Rewriting Guide
他にも色々出来るみたいです。
(まだ理解できていませんが)
一応試しましたが、やはりうまく出来ませんでした。
おかしいですね?こちらでは上手くいっているのに。
apache のバージョンの所為でしょうか。
もしも test.php がルートに無い場合はフルパスで書くなり、RewriteBase が必要ですが、大丈夫ですか?
あと、質問文をコピペしたんですけど、) を名前として許すとは思いにくいので
RewriteRule ^([0-9A-Za-z)]+)¥/$ test.php?hensu=$1 [L] は
RewriteRule ^([0-9A-Za-z]+)¥/$ test.php?hensu=$1 [L] ですね。
ありがとうございます。
出来ました。
質問に書かなかったのですが、
DirectoryIndex
を使用していてDirectoryIndexよりも前に記述したら出来ました。
本当に有難う御座いました。
また、機会があったら宜しくお願いします。
すいません。質問が分かりにくかったですね。。
例えば、 http://test.com の中に
test.php と info というディレクトリがあるとして、
infoにアクセスするとしたら、
http://test.com/info/
でアクセスしますよね。
それで、test.phpをhtaccessを使ってHTML形式の/区切りで表示させるようにした場合、
http://test.com/×××/
という形になります。
そうすると、infoのディレクトリもスラッシュで区切られている為、 infoの部分が変数とみなされてしまい、
通常のinfoのトップが表示されなくなってしまうので、それを何とかしたいという感じです。
説明がうまく書けなくてすいません。