2012-05-31 48 views
11

tất cả. Lần này tôi thử CakePHP, nhưng tôi đã có "URL viết lại không được cấu hình đúng trên máy chủ của bạn. 1) Giúp tôi cấu hình nó 2) Tôi không/không thể sử dụng URL viết lại". Tôi có thể biết đây là apache và các vấn đề .htaccess như/etc/apache2/sites-avaliable/default và mỗi thư mục .htaccess.cakephp không hoạt động được viết lại url trên Ubuntu

môi trường phát triển của tôi ...

  • Ubuntu12.04 trên vmware fusion4
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

Quy trình của tôi được theo dõi ...

1) /etc/apache2/httpd.conf

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
</Directory> 

2) cho phép mod_rewrite

sudo a2enmod rewrite 
sudo service apache2 reload 

3) chỉnh sửa/etc/apache2/sites-sẵn/default (AllOverride Không để AllOverride Tất cả)

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
</Directory> 
<Directory /var/www> 
Options Indexes FollowSymLinks MultiViews 
AllowOverride All 
Order Allow,Deny 
Allow from all 
</Directory> 

prompt: sudo service apache2 reload 

4) chỉnh sửa hoặc kiểm tra mỗi tập tin .htaccess - thư mục> bánh gốc

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ app/webroot/ [L] 
    RewriteRule (.*) app/webroot/$1 [L] 
    </IfModule> 

-> ứng dụng thư mục gốc

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
    </IfModule> 

-> webroot thư mục

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 
</IfModule> 

Vấn đề này được giải quyết, cảm ơn bạn.

+1

xác định 'không hoạt động ' – Dunhamzzz

+1

Đối với tôi, điều này đã thực hiện thủ thuật. sudo a2enmod viết lại && sudo dịch vụ apache2 tải lại – mac

+0

Tôi đã làm tất cả mọi thứ ngoại trừ bước 1 .. cảm ơn ^^ " –

Trả lời

6

Tôi cũng gặp sự cố này. Tắt tệp .htaccess không được sao chép cùng với nguồn CakePHP. Đây là vấn đề thường gặp khi sử dụng lệnh cp hoặc không có tệp ẩn hiển thị trong trình duyệt tệp, trừ khi bạn sao chép thư mục cấp cao nhất.

Làm một bản sao trực tiếp của tệp vào thư mục dự án của tôi đã sửa nó cho tôi mà không phải gây rối với cài đặt apache của tôi.

cp ~/git/cakePHP/.htaccess ~/project/folder/ 
-1

Đây có thể là sự cố cấp phép tệp. Thử đệ quy thiết lập quyền cho 777 cho cả thư mục webroot và tmp. Thư mục tmp có thể yêu cầu sudo.

sudo chmod -R 777 /path/to/app/webroot/ 
sudo chmod -R 777 /path/to/app/tmp/ 
+0

Cảm ơn bạn đã trả lời. Các điều khoản đã được sử dụng tốt. –

+0

Bạn không thể chỉ đơn giản là cấp 777 quyền cho webroot. Bảo vệ –

0

thể missconfiguration:

Kiểm tra nếu tập tin http://your_domain_name/css/cake.generic.css là rechable từ trình duyệt của bạn. Nếu không, bạn sẽ nhận được cảnh báo trong Default-Trang chủ

Nếu bạn có một thư mục {HOME}/css ở cấp độ gốc, UrlRewriting sẽ không chuyển hướng http://your_domain_name/css/cake.generic.css-{HOME}/app/webroot/css/cake.generic.css.

Do đó, không tìm thấy css-File, khiến cho thông báo viết lại URL không được định cấu hình đúng cách. (Xem ứng dụng Tệp/Xem/Trang/home.cpt)

Giải pháp: Xóa hoàn toàn {HOME}/css Thư mục gốc. Đặt css-File của bạn tại {HOME}/app/webroot/css.

Các vấn đề liên quan