2014-09-18 7 views
0

im пытается создать сайт, и мне нужно переписать фреймы с файловым файлом php в виртуальные каталоги.htaccess переписать виртуальную папку

Im пытается сделать URL типа http://localhost/en/dashboard/mailbox/send/username

работать, и его работы со следующим кодом

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ 
RewriteRule . %1/%2 [R=301,L] 

RewriteCond %{HTTP:Accept-Language} ^([a-z]{2})- [NC] 
## Rewrite Rules 
RewriteRule ^/?$ /%1/%{REQUEST_URI} [L,NC,R] 
RewriteRule ^([a-z]{2})/?$ /index.php?language=$1 [L,NC,QSA] 

RewriteRule ^account/?$ /%1%{REQUEST_URI} [L,NC,R] 
RewriteRule ^([a-z]{2})/(account)(?:/([^/]+)(?:/([^/]+))?)?/?$ account.php?language=$1&action=$3 [L,NC] 

RewriteRule ^dashboard/?$ /%1%{REQUEST_URI} [L,NC,R] 
RewriteRule ^([a-z]{2})/(dashboard)(?:/([^/]+)(?:/([^/]+))(?:/([^/]+))?)?/?$ /$2.php?language=$1&type=$3&subtype=$4&lasttype=$5 [L,NC,QSA] 

Однако, теперь я не могу получить доступ к http://localhost/en/dashboard/mailbox/ сам

Может кто-то помочь мне Для решения этой проблемы?
Im не в эту вещь htaccess вообще, но я сделал все, что мог (я так думаю)

+0

В 'RewriteRule^приборной панель /? $ /% 1% {REQUEST_URI} [L, NC, R]', где делает '% 1' приходит из? – hjpotter92

+0

Его переменная языка, полученная путем разбора '% {HTTP: Accept-Language}' –

+0

Нет, это не так. Это 'RewriteCond' связано со следующим правилом. Это не относится к __all__ следующим правилам. – hjpotter92

ответ

1

Благодаря @ hjpotter92 эта проблема была решена.

Я пропустил один вопросительный знак, поэтому поэтому этот код был вроде сломан.
Вот правильная строка:

^([a-z]{2})/(dashboard)(?:/([^/]+)(?:/([^/]+))?(?:/([^/]+))?)?/?$ 

Все, что я пропустил это
^([a-z]{2})/(dashboard)(?:/([^/]+)(?:/([^/]+))?(?:/([^/]+))?)?/?$

И здесь вполне правильный код

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ 
RewriteRule . %1/%2 [R=301,L] 

RewriteCond %{HTTP:Accept-Language} ^([a-z]{2})- [NC] 
## Rewrite Rules 
RewriteRule ^/?$ /%1/%{REQUEST_URI} [L,NC,R] 
RewriteRule ^([a-z]{2})/?$ /index.php?language=$1 [L,NC,QSA] 

RewriteRule ^account/?$ /%1%{REQUEST_URI} [L,NC,R] 
RewriteRule ^([a-z]{2})/(account)(?:/([^/]+)(?:/([^/]+))?)?/?$ account.php?language=$1&action=$3 [L,NC] 

RewriteRule ^dashboard/?$ /%1%{REQUEST_URI} [L,NC,R] 
RewriteRule ^([a-z]{2})/(dashboard)(?:/([^/]+)(?:/([^/]+))?(?:/([^/]+))?)?/?$ /$2.php?language=$1&type=$3&subtype=$4&lasttype=$5 [L,NC,QSA] 
+0

Я бы подумал, что будет лучше, если @ hjpotter92 опубликует это как ответ, чтобы вы могли отдать ему кредит, приняв его. – anubhava

+0

@anubhava Ах, проблема была просто отсутствием '?' От части OP. Я бы предпочел подумать об этом как опечатке;) \ @Ivan. Вы можете выбрать этот пост в качестве ответа. – hjpotter92

Смежные вопросы