2015-09-06 59 views
1

最近我已經設置了此規則,以重定向我的根目錄主辦的/測試子目錄htaccess的習慣子目錄內工作(阿帕奇)

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.net$ [NC] 
RewriteRule ^((?!test/).*)$ test/$1 [L,NC] 

它工作正常...

因此,在這種/ test子目錄,我有一個文件「jokes.php」這些不友好URLS

//Jokes mainpage 
www.mydomain.net/jokes.php 
//Drunk jokes category 
www.mydomain.net/jokes.php?c=drunks 
//See 'On the bar' joke - this is how i identify on my DB 
www.mydomain.net/jokes.php?c=drunks&id=on_the_bar 

上述網址做工精細,所以,我想使用友好的URL樣這個:

// Individual -> mydomain.net/jokes-drunks/on-the-bar/ 
RewriteRule ^jokes-(.*)/([a-zA-Z0-9-]*)/$ jokes.php?c=$1&id=$2 
// Category -> mydomain.net/jokes-drunks/ 
RewriteRule ^jokes-([a-zA-Z_]+)/$ jokes.php?c=$1 
// Main -> mydomain.net/jokes/ 
RewriteRule ^jokes/ jokes.php 

但我總是得到一個404錯誤。重寫規則適用於本地主機,相同的網站結構/根/站點... 我不得不提我的本地主機.htaccess文件在/ test子目錄中,但在mydomain.net是在根,cuz它的工作方式對於第一個重定向規則...當然我的網站也在/測試subdir太...

我試圖使用另一個.htaccess文件裏面/測試子目錄,但我認爲根.htaccess覆蓋子目錄。 htaccess的或東西...

林學習,所以要提前耐心:)謝謝

+0

檢查並確保'AllowOverride'設置爲on – ScottMcGready

回答

0

嘗試增加標誌你的規則:

RewriteRule ^jokes-([^/]+)/([a-zA-Z0-9-]*)/?$ jokes.php?c=$1&id=$2 [QSA,NC,L] 
RewriteRule ^jokes-([a-zA-Z_]+)/?$ jokes.php?c=$1 [QSA,NC,L] 
RewriteRule ^jokes/?$ jokes.php [NC,L]