2012-09-04 59 views
8

Tôi đang sử dụng MODX Revolution 2.2.4-pl. Tôi đang sử dụng tệp .htaccess được cung cấp và đã bật URL thân thiện. Đây là những quy tắc viết lại của tôi.Cách xóa .html khỏi URL thân thiện - Modx?

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

Họ cần gì để xóa mã .HTML khỏi URL?

Tôi đã googling điều này trong hai mươi phút qua và các giải pháp của tôi đã không hoạt động. Cảm ơn

Trả lời

23

Có một dễ dàng hơn nhiều được xây dựng theo cách. Đăng nhập vào Trình quản lý.

MODX Revolution

2.2.x và trước đó: Tới System -> Content Types.

2.3.x trở lên: Chuyển đến Content -> Content Types.

Tìm HTML và xóa nội dung được viết trong "Phần mở rộng tệp". Bạn làm điều này bằng cách nhấp đúp vào .html trong bảng để kích hoạt trường có thể chỉnh sửa. Sau khi bạn đã xóa nội dung, hãy xóa bộ nhớ cache.

MODX Tiến hóa

Đến Tools -> Configuration -> Friendly URLs.

Xóa nội dung trong "Hậu tố URL thân thiện". Lưu và xóa bộ nhớ cache.

+2

+1 Đây là 'cách MODX': hiệu quả hơn giải pháp .htaccess, cho phép truy cập 'trực tiếp' vào tài nguyên thay vì đọc lại trên mọi yêu cầu. Nếu có các liên kết bên ngoài hiện có trỏ đến các trang kết thúc bằng .html, bạn cũng nên sử dụng RewriteRule. – okyanet

1

Trước tiên, tôi nghĩ bạn cần hiểu điều này .htaccess đang cố gắng thực hiện.

Nó đang cố gắng chuyển hướng tất cả các yêu cầu vào trang web không phải cho tệp hoặc thư mục thực (tức là hình ảnh, css hoặc các tập lệnh khác có thể không nằm trong trang web "chính") bộ điều khiển nằm ở index.php.

Nếu những gì bạn đang cố gắng làm là sử dụng một loạt các tệp * .html trên trang web của bạn (chứ không phải bộ điều khiển phía trước), nhưng để chúng sử dụng URL sạch thì bạn sẽ cần sử dụng một loại viết lại khác. Có lẽ một cái gì đó giống như

RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^(.*)$ $1.html [L,QSA] 

Quy tắc này sẽ mất một yêu cầu theo hình thức http://domain.com/somepage và có nó âm thầm trỏ đến http://domain.com/somepage.html để phục vụ theo yêu cầu.

3

này làm việc cho tôi:

# The Friendly URLs part 
#RewriteCond %{REQUEST_FILENAME} !-f 
#RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 


RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule ^(.*)\.html$ $1 [R=301,L] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
#RewriteRule . /index.php [L] 
+0

Cảm ơn người đàn ông! Được đánh giá cao. – Brant

+0

không sao! [Mặc dù nếu bộ nhớ phục vụ, tôi nhận được câu hỏi này từ câu hỏi stackexchange quá :)] –

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