2013-03-16 4 views
1

Я делаю свой сайт с двигателем первого выражения .. и я хочу удалить index.php .. Я много читал и пробовал использовать механизм основного выражения для перезаписи «удаление», но потому что я перенаправляю свой сайт в зависимости от языка. Я уверен, что есть лучший способ! я иметь префикс языки перед index.php как: domain.com/en/index.php/segment1/.... сейчас я использую:удалите index.php, но сохраните движок выражения первого сегмента

RewriteCond $2 !\.(index|css|js|gif|jpe?g|png|robot.txt|sitemap.xml) [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)?/([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?$ /$1/index.php?/$2/$3/$4/$5 [L] 

есть более хороший или лучший способ! ?

Это работает, но если у меня есть более чем на 4 сегмента мне придется добавить $ 6 и так далее .. уверен, что есть лучший путь ...

С уважением ..

Бен

EDIT:

Я до сих пор есть 1 проблема с ChannelImages (DevDemon) и/или ChannelFiles .. мне нужно проверить расположение загрузки с domain.com/?ACT=XX хм это номер ..

я пытался добавить RewriteCond% {REQUEST_URI}!^(ACT =. *) $ [NC]

сейчас страница перенаправляет на главную страницу ../FR или/ан ..

ответ

0

Предполагая, поступающую структуру URL всегда что-то вроде этого:

http://domain.com/LangCode/anything

где LangCode и anything являются переменными, вы можете попробовать это в одном файле .htaccess в корневом каталоге:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} !\.(index|css|js|gif|jpe?g|png) [NC] 
RewriteCond %{REQUEST_URI} !(robot.txt|sitemap.xml)  [NC] 
RewriteCond %{REQUEST_URI} !index\.php      [NC] 
RewriteRule ^([^/]+)/(.*)/?$ /$1/index.php?/$2    [NC,L] 

Карты молча:

http://domain.com/LangCode/index.php?/anything

Для постоянного и видимого перенаправлении заменить [NC, L] с [R = 301, NC, L]

+0

большое спасибо .. работает как! charmmm .. –

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