2015-01-24 3 views
0

Я следующие файлы на моем корневом каталоге сервера:Htaccess правила перезаписи с параметрами

/index.php 
/css/file.css 
/js/file.js 

Я хотел бы переадресовать:

  • http://host/entry/1 в http://host/index.php?entry=1

У меня есть следующие .htaccess до сих пор:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-s 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} /entry/ [NC] 
    RewriteRule ^entry/(.*)$ index.php?entry=$1 [QSA,NC,L] 

</IfModule> 

Проблема в том, что файлы css и js обслуживаются неправильно.

И это потому, что браузер запрашивает файлы:

  • http://host/entry/css/file.css вместо http://host/css/file.css
  • http://host/entry/js/file.js вместо http://host/js/file.js

Как я могу исправить это?

Благодаря

+0

Я думаю, что вам не хватает RewriteCond% {REQUEST_FILENAME}! -f' – Madbreaks

+0

это не очень помогает :( –

ответ

1

Использование что:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} -d [OR] 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -s 
    RewriteRule^- [L] 

    RewriteRule ^entry/(.+\.(?:js|css))$ $1 [NC,L] 

    RewriteRule ^/content/ag(.*)$ index.php?entry=$1 [QSA,NC,L] 
    RewriteRule ^entry/(.*)$ index.php?entry=$1 [QSA,NC,L] 
</IfModule> 

И добавить в своем заголовке HTML:

<base href="/"> 

добавить рерайт для .js и .css
Но вы можете добавить другие, например .gif или .png ...

+0

есть ли какое-либо другое решение вместо '', которое может быть проблемой для моего кода js? –

+1

Один момент я добавлю, что в коде – Croises

+1

Добро пожаловать, рад, что это сработало. – Croises

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