2011-12-17 31 views
10

Vì vậy, tôi đã có tất cả hiện chuyển hướng URL của tôi để index.php với điều này trong .htaccess của tôi:Viết lại tất cả các URL để index.php trừ từ '/ Serene/tài sản /'

RewriteEngine on 
RewriteCond %{DOCUMENT_ROOT} !-f 
RewriteRule ^(.*)$ index.php [QSA,L] 

Tuy nhiên, tôi cần URL chẳng hạn như http://localhost/Portfolio/Serene/Assets/css/style.css để không chuyển hướng, nhưng tôi không chắc chắn như thế nào?

Tôi thực sự đánh giá cao sự giúp đỡ nào,

Chúc mừng.

EDIT: Ngoài ra, tôi có thể yêu cầu htaccess không chuyển hướng bất kỳ tệp .js, .css, tệp hình ảnh, v.v ... nhưng một lần nữa, tôi không chắc chắn cách thực hiện việc này? Cảm ơn!

EDIT2: Tôi cũng có thể chuyển hướng bất kỳ thứ gì kết thúc bằng một .php hoặc đường dẫn (chẳng hạn như/Portfolio /) đến index.php, tôi có cảm giác điều này có thể dễ dàng hơn.

EDIT3: Thành công, mã cuối cùng:

RewriteEngine on 

RewriteCond %{DOCUMENT_ROOT} !-f 
RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|flv|xml)$ index.php [QSA,L] 

Trả lời

9

Dưới đây là một cách khác để làm điều đó:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

hình ảnh, robots.txt sẽ không được viết lại vào index.php. Chỉ cần thêm các thư mục/tập tin của bạn.

Hy vọng điều đó sẽ hữu ích!

+2

Chúc mừng! Đoạn mã đó không giúp được gì, nhưng tất cả những gì tôi cần biết là '!' Có nghĩa là chuyển hướng mọi thứ trừ những điều sau đây. Dưới đây là đoạn code cuối cùng cho bất cứ ai quan tâm:!. 'RewriteEngine on' ' RewriteCond% {} DOCUMENT_ROOT -f' 'RewriteRule \ (js | ico | gif | jpg | png | css | html | swf | flv | xml) $ index.php [QSA, L] ' – chintanparikh

+0

thật tuyệt, tôi rất vui vì nó chỉ cho bạn đúng hướng! – SeanNieuwoudt

5

này sẽ viết lại yêu cầu cho bất kỳ tập tin không tồn tại trên máy chủ để index.php:

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

RewriteRule .* index.php [L] 
Các vấn đề liên quan