2009-06-05 15 views
1

サイトのURLを内部的にリダイレクトするのが難しい問題があります。トリッキーなURL書き換え、正規表現.htaccess

状況はこれです、私は現在、内部的に次mod_rewriteコードを使用check.php?domain=youtube.comにリダイレクトexample.com/check/youtube.comのようなURLがあります。私はまたのようなURLを使用してcheck.phpにリダイレクトできるようにしたいと思いますしかし

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L] 

RewriteRule ^offline offline.php [NC,L] 
RewriteRule ^error error.php [NC,L] 

RewriteRule ^check/(.*)$ check.php?domain=$1 [NC,L] 

example.com/youtube.com。残念ながら私はそれを理解することができません。

私は影響を受けてはならないすべてのCSS、JSなどを含むディレクトリ/assets/を持っています。

おかげ

答えて

2

は、このルールを試してみてください:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/.]+\.[^/]+$ check.php?domain=$0 [L] 

このルールはできませんフォーム[^/.]+\.[^/]+(少なくとも1つのドットが、全くスラッシュを含む文字列)のURLパスを持つすべての要求を書き換えcheck.phpへの既存のファイルにマップされます。

+0

$ 0を使用していますので、前回使用したことがないので、私はそれを調べる必要があります。P –

+0

'$ 0'は正規表現全体の一致した文字列です。 – Gumbo

+0

ああ、そうです、それはたくさんの意味があります。再度、感謝します。 –

0

「example.com/youtube.com」をリダイレクトすると、ほとんど何かをリダイレクトすることになりますか?通過することが特に許可されているもの。 check.phpにリダイレクトするために「example.com/youtube.com/foobar.php」を渡すことは許可されますか?

+0

さて、スクリプトは提出時にjsでクリーンアップされています(非jsユーザーのためにもメモがあります)。* example.com/youtube.com/foobar.php *を提出する場合は、* exampleに更新されます.com/youtube.com * 誰かがそのリンクを直接スクリプトに送信しても、それは404を返します。しかし、私はそれを後で行い、それは問題ではありません。 あなたが.htaccessでそれをきれいにすることができるなら、代わりにそれはクールだろう... –