2009-10-11 54 views
-1

.htacces現代重寫問題

Options +FollowSymLinks 
RewriteEngine On 

RewriteBase/
RewriteRule ^([a-zA-Z0-9_-]+)$ sinj.com.hr/index.php?var1=$1 [L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ sinj.com.hr/index.php?var1=$1&var2=$2 [L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ sinj.com.hr/index.php?var1=$1&var2=$2&var3=$3 [L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ sinj.com.hr/index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L] 


RewriteRule ^([a-zA-Z0-9_-]+)/$ sinj.com.hr/$1 [R=301,L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ sinj.com.hr/$1/$2 [R=301,L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ sinj.com.hr/$1/$2/$3 [R=301,L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ sinj.com.hr/$1/$2/$3/$4 [R=301,L] 

有文件夾sinj.com.hr/administracija,當我嘗試訪問http://localhost/sinj.com.hr/administracija我重定向到http://localhost/sinj.com.hr/administracija?var1=administracija 我想什麼是在用戶進入http://localhost/sinj.com.hr/administracija,他是重定向到http://localhost/sinj.com.hr/administracija/index.php。我試圖用header(「Location:...」)做到這一點,但它總是將我重定向到http://localhost/sinj.com.hr/administracija?var1=administracija。如果文件夾administracija被重命名,那麼header()函數就可以工作。任何想法如何解決這個問題?

感謝, 島

+0

這屬於ServerFault。 – 2009-10-11 18:17:27

+0

這是沒有理由修改標籤。它需要5票才能將問題遷移到serverfault,但修改標籤僅僅是一個人擊敗這個民主系統的決定。 – 2009-10-11 18:24:37

+0

第一次聽說它現在 – 2009-10-11 19:55:01

回答

1

試試這個規則,以測試是否可以將請求映射到包含的index.php文件的目錄:

RewriteCond %{REQUEST_FILENAME}/index.php -f 
RewriteRule^%{REQUEST_URI}/index.php 

另外,你可以使用這個單一規則重定向任何請求的URL路徑以斜線結尾:

RewriteRule ^(.+)/$ sinj.com.hr/$1 [R=301,L] 
+0

不工作,但謝謝你的嘗試 – 2009-10-11 19:59:18

+0

它的工作原理...第一次我試着把它放在代碼的末尾......前兩行必須在最後4行之前設置。呃,你救了我的一天:)非常感謝! – 2009-10-12 10:48:15

+0

好吧,現在有另一個問題...例如,如果有文件夾「vijesti」,它不包含index.php,然後如果我嘗試訪問sinj.com.hr/vijesti我重定向到.. .vijesti/var1 = vijesti ...這一次實際上我不需要重定向到文件夾。任何解決方案? – 2009-10-13 21:27:50