2012-05-20 18 views
0

我想重寫/homeindex.php/editedit.php,但一切,就像/asdfg我想重定向到new.php的.htaccess重定向一切UKNOWN除少數上定義的

兩個編輯和家庭對自己的工作,但(.*)優先於這些規則,我嘗試了它沒有RewriteCond,但然後沒有任何作品。

RewriteEngine on 
RewriteBase/
RewriteRule ^home$ /index.php 
RewriteRule ^edit$ /edit.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ /new.php [L,R=301] 

我只是需要所有未定義的URI重定向到/new.php

我還需要保持/asdfg的URI,這樣我就可以使用JavaScript抓住它,並顯示相應的內容,一個無論是顯示一個頁面讓ppl發佈新帖子或顯示現有內容。

我無法定義所有現有內容,因爲它來自數據庫,只有少數預定義的保留"/folders"將重定向到預定義的頁面。

我有以下工作:

RewriteEngine on 
RewriteRule ^home$ /index.php [R] 
RewriteRule ^edit$ /edit.php [R] 

它的葉子/家那裏去的index.php

現在我只需要重定向所有未知請求默認頁new.php。

我基本上要防止用戶得到一個404或任何其他錯誤,永遠..

回答

1

您需要的last標誌添加到您的第一個的RewriteRules,所以,最後重寫規則不會生效:

RewriteRule ^home$ index.php [L] 
RewriteRule ^edit$ edit.php [L] 
+0

但是,現在當我被引導到/new.php時,它不會離開/ asdfg那裏...它將/new.php放在那裏,但我需要保持用戶輸入,以能夠抓住它與JavaScript .. – TrySpace

+1

嘗試從最後的規則中刪除'R = 301'。這個'R'標誌強制重定向,而不是重寫。 – Floern

+0

這很奇怪,我試過了,但它仍然使它/new.php ..但它似乎是一個瀏覽器緩存問題..它工作時,我用我的域名,TNX另一個別名! – TrySpace

1

嘗試將[L]標誌添加到「首頁」和「編輯」規則中,以便在匹配後不會處理「新建」規則。