让我立即开始我的问题:
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
我被redirect到
HTTP://localhost/sinj.com.hr/administracija VAR1 = administracija
我想要的是,当用户inputhttp://localhost/sinj.com.hr/administracija
,他被redirect到http://localhost/sinj.com.hr/administracija/index.php
。 我试图用头(“位置:…”)做到这一点,但它总是将我redirect到http://localhost/sinj.com.hr/administracija?var1=administracija
。 如果文件夹administracija重命名然后header()函数工作。 任何想法如何解决这个问题?
谢谢,Ile
在我自己的Apacheconfiguration上testing我创build了目录DOCUMENT_ROOT/sinj.com.hr
,并将.htaccess
文件放在那里,同时还有一个简单的index.php
文件,将$ _REQUEST内容转储回给我。
这里是我使用的.htaccess
:
Options +FollowSymLinks RewriteEngine On RewriteBase /sinj.com.hr RewriteCond %{REQUEST_URI} !^/sinj.com.hr/index.php RewriteRule ^([^/]+)$ index.php?var1=$1 [R,L,QSA] RewriteRule ^([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2 [R,L,QSA] RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2&var3=$3 [R,L,QSA] RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?var1=$1&var2=$2&var3=$3&var4=$4 [R,L,QSA]
RewriteCond行捕获index.php
以防止它进入recursion循环。 我还给每个RewriteRule指定了redirect(R)和查询string追加(QSA)标志,并告诉它们是最后一个(L)规则。
我也改变了比赛分组,以包括除了斜线(/)以简化匹配。
嗯…试试这个怎么样?
DirectoryIndex
在administracija文件夹下的.htaccess文件中的指令? 在这种情况下,我特别build议:
DirectoryIndex index.php
不能让文本显示为代码在评论中,所以我将不得不使用答案…
RewriteCond %{REQUEST_FILENAME}/index.php -f RewriteRule ^ %{REQUEST_URI}/index.php
以下规则导致行为:
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ sinj.com.hr/index.php?var1=$1&var2=$2 [L]
这是将/sinj.com.hr/administracija
redirect到sinj.com.hr/index.php?var1=administracija