Позвольте мне сразу начать с моей проблемы:
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
. Я пытался сделать это с помощью заголовка ("Местоположение: ..."), но он всегда перенаправлял меня на http://localhost/sinj.com.hr/administracija?var1=administracija
. Если папка administracija переименована, то функция header () работает. Есть идеи, как это решить?
Спасибо, Иль
Тестируя свою собственную конфигурацию Apache, я создал каталог 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
чтобы он не зашел в рекурсивный цикл. Я также дал каждому RewriteRule флаги перенаправления (R) и добавления строки запроса (QSA) в дополнение к тому, чтобы сообщить им, что они применялись последним (L) правилом.
Я также изменил группировку совпадений, включив все, кроме косой черты (/), чтобы упростить сопоставление.
не удалось получить текст, отображаемый как код в комментарии, поэтому мне придется использовать ответ ...
RewriteCond %{REQUEST_FILENAME}/index.php -f
RewriteRule ^ %{REQUEST_URI}/index.php
Хмммм ... как насчет того, чтобы попробовать
DirectoryIndex
директиву в файле .htaccess в папке administracija? В этом случае я бы специально предложил:
DirectoryIndex 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
к sinj.com.hr/index.php?var1=administracija