2012-04-11 116 views
0

我需要重定向任何 www.mysite.com/anything/anything OR www.mysite.com/anything並排除 www.mysite.com/app如何向htaccess寫入重寫規則?

TO www.mysite.com/app

當然我想排除是可選的。這只是一個額外的重定向,我認爲會花費額外的時間,但如果排除它,將會很好。

我發現這些基本的例子http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html並已經這樣做了:

RewriteRule ^*/*/$ /app 
RewriteRule ^*/$ /app 

,但它不工作,再加上我仍然不知道如何排除/應用

幫助嗎?

UPDATE

我想。*表示在正則表達式0或多個點,我的例子是完全錯誤的,我需要什麼語法,而不是你在你的答案中使用的點。

回答

3

你可以試試這個:

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/app$ 
RewriteRule ^.*$ /app [L] 
2

這是否適合您?

RewriteEngine on 
RewriteRule ^.*$ app/ [L] 

不幸的是,它並沒有排除正確的道路。但先嚐試一下。

+0

也許沒有斜線 – Dion 2012-04-11 08:45:21

+0

[L]代表什麼? – 2012-04-11 09:51:45

+0

。*當然是一個正則表達式,對此很抱歉。 \ *是爲了分。*是爲了一切。 來自:http://www.easymodrewrite.com/notes-last L標誌將告訴Apache停止處理該請求的重寫規則。現在通常沒有意識到的是,它現在對新的重新編寫的文件名提出新的請求,並且再次開始處理重寫規則。 所以這可能是你不必要的。 – 2012-04-11 09:59:18

0

將這個代碼在你的.htaccess下DOCUMENT_ROOT:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^(?!app/).*$ app [L,NC] 

在上面重寫規則將重定向的一切,除了一個URI與/app//app開始負前瞻。