http://xxx.jp/●●/○○/
にアクセスすると、
http://xxx.jp/test.php?a=●●&b=○○
にhtaccessでリライトします。
これ自体は問題ないのですが、
●●や○○
に「 / 」スラッシュや「 . 」などが入ると、
リライトがエラーになってしまいます。
http://q.hatena.ne.jp/1178043276
こちらの質問の続きのような形になりますが、
アドバイスよろしくお願いします。
正規表現の問題というより、分解ルールが曖昧であるためにエラーが出ていると思われます。
たとえば、下記URLにアクセスするとしたら、
a = 'a' なのか a = 'a/b' が区別が付きません。
a または b のいずれかは「スラッシュやピリオドが付かない」というルールにしていただければ、正規表現で表現することができます。
http://xxx.jp/●●/○○/ で、●●と○○のどちらに / を含んでよいかが決まっているなら正規表現での表現は可能だと思います。
例えば、http://xxx.jp/a/b/c/ の場合、a/b と c にする場合は
RewriteRule (.+)/([^/]+)/$ index.php?c=$1&d=$2
で、a と b/c にしたい場合は
RewriteRule ([^/]+)/(.+)/$ index.php?c=$1&d=$2
としてやれば良いのではないかと思います。
どうもありがとうございます。
両方に入る可能性があると、やはり厳しそうですか・・・。
両方に入る可能性があると、やはり厳しそうですか・・・。
残念ながら、不可能です。
ヒトが見ても、どちらに入るか判断できないわけですから。
ましてやコンピュータ・プログラムが判断できるはずもありません。
どうもありがとうございます。
/ でなく %2F で入るため、なんとかならないかなと模索してましたが、
リライトエンジンで / に変換されるのでできないみたいですね。
残念です・・・。
どうもありがとうございます。
そうなんです。
それで「 / 」が入るとおかしくなってしまって困っています・・・。
どちらかに「入らない」という制限をつけるしか方法がない、ということですね。