2013-10-24 2 views
0

У меня есть файл htaccess, который я пытаюсь переписать, но это вызывает множество проблем. Во-первых вот мой htacess файл:Htaccess: меняет корень и не находит файлы

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/ [R=301,L] 

RewriteRule ^([a-zA-Z0-9]*)/?$ index.php?category=$1&%{QUERY_STRING} 
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]+)/?$ index.php?category=$1&itemId=$2&%{QUERY_STRING} 

RewriteRule ^login$ login.php?category=$1&%{QUERY_STRING} [L] 

Первая проблема заключается в том, что, когда я делаю запрос как «MySITE/Foo/бар /», он делает переписать строку запроса в категорию и Itemid, но он также изменяет базу каталог для моих файлов css и файлов Js в /foo/bar/design/css/style.css

Вторая проблема заключается в том, что у меня есть несколько путей, таких как «login /», «register /», «users /», , и когда я пытаюсь загрузить соответствующий файл, он говорит:

The requested URL /login/ was not found on this server. 

Спасибо за помощь!

ответ

0

Сначала изменить .htaccess, как это:

RewriteEngine On 

## If the request is for a valid directory 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
## If the request is for a valid file 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
## don't do anything 
RewriteRule^- [L] 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/ [R=301,L] 

RewriteRule ^([a-zA-Z0-9]*)/?$ index.php?category=$1 [L,QSA] 
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]+)/?$ index.php?category=$1&itemId=$2 [L,QSA] 

RewriteRule ^login/?$ login.php?category=$1&%{QUERY_STRING} [L,QSA] 
+0

Теперь любые пути показывает ошибку ... – Cedric

+0

Какой URL показывает ошибку и что ошибка? – anubhava

+0

например mysite.com/foo/bar/ просто говорит, что URL-адрес запроса не найден – Cedric