2009-10-11 62 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