2009-06-05 25 views
1

我有一個棘手的問題,在我的網站內部重定向一些URL。整蠱網址重寫,正則表達式.htaccess

的情況是這樣的,我現在有喜歡example.com/check/youtube.com一個URL,其使用以下mod_rewrite代碼內部重定向到check.php?domain=youtube.com

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] 

不過,我也希望能夠使用像一個URL重定向到check.phpexample.com/youtube.com。不幸的是,我發現了這一點。

我有一個目錄/assets/所有的CSS,JS等不應該受到影響。

感謝

回答

2

試試這個規則:

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

這條規則重寫與形式[^/.]+\.[^/]+的URL路徑(即包含至少一個點一個字符串,但都沒有斜槓)的任何請求不能將其映射到您的check.php的現有文件。

+0

由於一噸,intreasting您使用$ 0作爲我之前用沒見過,我要看看,最多:P – 2009-06-05 18:14:11

+0

`$ 0`只是整個正則表達式匹配的字符串。 – Gumbo 2009-06-05 18:14:42

0

至於要重定向「example.com/youtube.com」這是否意味着你要重定向相當多的東西?什麼是特別允許通過的,例如我會被允許通過「example.com/youtube.com/foobar.php」重定向到check.php嗎?