DirectoryIndex /index.php
order deny,allow
deny from all
allow from 各種携帯IP
ErrorDocument 403 http://ドメイン/pc/NG.html
上記のように携帯以外のIPからのアクセスは全てhttp://ドメイン/pc/NG.htmlへリダイレクトしています。
しかしPCからtestという文字列が入ったURLをリクエストされた場合はhttp://ドメイン/pc/OK.htmlへリダイレクトしたいです。
※携帯の場合はリダイレクトしません。
例
http://ドメイン/?q=testへのアクセスは/pc/OK.htmlへリダイレクト
http://ドメイン/?q=abctestdeへのアクセスは/pc/OK.htmlへリダイレクト
http://ドメイン/?q=tesへのアクセスは/pc/NG.htmlへリダイレクト
携帯からのアクセスは全て/index.php
サイトの構造上、?q=の後にどの文字列を入力しても/index.phpが表示される仕組みになっています。
PCからtestという文字列が入ったURLをリクエストされた場合のみhttp://ドメイン/pc/OK.htmlへリダイレクトするにはどうしたらよいでしょうか?
ご教示いただけると幸いです。
宜しくお願い致します。
deny from all ではじいてしまうと何もできなくなりますので条件判断の出来るmod_rewriteを用いるなどで対処することになります
DirectoryIndex /index.php RewriteEngine On RewriteCond %{REMOTE_ADDR} 携帯IP [OR] RewriteCond %{REMOTE_ADDR} 携帯IP [OR] RewriteCond %{REMOTE_ADDR} 携帯IP [OR] RewriteCond %{REMOTE_ADDR} 携帯IP [OR] RewriteCond %{REMOTE_ADDR} 携帯IP [OR] RewriteCond %{REMOTE_ADDR} 携帯IP [OR] RewriteCond %{REMOTE_ADDR} 携帯IP RewriteRule ^.+$ - [L] RewriteRule ^.+q=test.*$ http://ドメイン/pc/OK.html [L] RewriteRule .* http://ドメイン/pc/NG.html [R=403]
単純にIPではじく場合よりも負荷がかかりますし、自ら穴を空けておくということにもなりますので、あまりお勧めはしません。開発時だけの利用に留めて、キッチリカッチリ削除しておくことをお勧めしておきます
今試してみました。
ご回答頂いた通りに記述したのですが、携帯からアクセスしてもPCからアクセスしてもForbiddenが表示されてしまいます。
何か足りない記述がございましたらコメント頂けると幸いです。