2012-05-07 2 views
2

Так что я пытаюсь переместить приложение из apache в NginX, но я обнаружил, что мне нужно перезаписать файл .htaccess, у меня был хороший внешний вид, но в конце концов мне нужно попросить о помощи..htaccess для nginx переписать правила, исключая определенные папки

Ниже представлен файл .htaccess от apache, im, который пытается перенаправить все запросы на index.php, за исключением запросов в/html,/css,/images,/php.

Спасибо за вашу помощь заранее! Билл

RewriteEngine on 
RewriteRule ^html [L,NC] 
RewriteRule ^css [L,NC] 
RewriteRule ^images [L,NC] 
RewriteRule ^php [L,NC] 
RewriteRule ^.*$ index.php [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !directory/(.*)$ 
RewriteCond %{REQUEST_URI} !(.*)$ 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

До сих пор у меня ниже, и запросы на HTML, CSS, изображений и PHP файлов работают замечательно.

Но когда я делаю запрос на www.domain.com/blah/blah/blah/ im, получая 404, я действительно хочу, чтобы URL-адрес обновлялся как www.domain.com/blah/blah/blah/но загрузить файл index.php

location ~ directory/(.*)$ { 
} 

location ~ (.*)$ { 
} 

location /html { 
rewrite ^/html/break; 
} 

location /css { 
rewrite ^/css/break; 
} 

location /images { 
rewrite ^/images/break; 
} 

location /php { 
rewrite ^/php/break; 
} 

location/{ 
rewrite ^(.*)$ /index.php break; 
if (!-e $request_filename){ 
rewrite ^(.*)$ http://www.domain.com/$1 redirect; 
} 
} 

ответ

0

попробовать что-то вдоль этих линий для запросов фильтрации для содержания в определенных папках: (!)

RewriteEngine On 
# if not requesting content in one of the specified folders 
RewriteCond %{REQUEST_FILENAME} !^(html|css|images|php)/ [NC] 
# redirect visitor to the index page 
RewriteRule ^(.*)$ index.php [L,QSA] 

восклицательный знак перед условием переписывания означает отрицание, поэтому, если запрашиваемое имя файла НЕ начинается с html или css или ...., примените правило перезаписи.

+0

Благодаря Тому, с помощью конвертера Я видел, исследуя это дает мне .. 'code' если ($ REQUEST_FILENAME ~ *! "^ (HTML | CSS | изображения | PHP) /") { \t набор $ rule_0 1 $ rule_0; } if ($ rule_0 = "1") { \t rewrite ^/(. *) $ /index.php last; } 'code' – Bill

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