2013-10-04 8 views
0

Вот мое правило перенаправления для перенаправления внутри каталога public/.htaccess rewrite act funny

файла внутри site (например, каталог)

RewriteCond %{REQUEST_URI} ="" 
RewriteRule ^.*$ public/index.php [NC,L] 

RewriteCond %{REQUEST_URI} !^public/.*$ 
RewriteRule ^(.*)$ public/$1 

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^public/(.*)$ public/index.php?r=$1 [NC,L] 

Что это делает создать обалденный эффект.

site/a/b/c --> site/a/b/c/b/c 
         //^b/c is repeated and the params are a/b/c 

Внутри общедоступный каталог .htaccess файл имеет

RewriteEngine On 

Если удалить эту строку, r получает public/index.php не a/b/c.

Почему это происходит?

ответ

0

Попробуйте этот код:

RewriteEngine On 

RewriteRule ^$ public/index.php [NC,L] 

RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(.+)$ public/index.php?r=$1 [L,QSA] 
+0

его все еще тот же 'A/B/C/B/c' – mrN

+0

Является ли Ваш оригинальный URL **' HTTP: //site.com/a/b/c '**? – anubhava

+0

Да, и последнее обновление дало ошибку сервера. – mrN