2009-06-28 25 views
8

Tôi viết lại các url của mình để thân thiện với người dùng. Ví dụ tôi có một trang gọi là user.php mà tôi viết lại/user. Nhưng người dùng vẫn có thể sử dụng user.php. Tôi có thể chuyển hướng đến 404 nếu họ yêu cầu một trang có phần mở rộng .php không?lỗi mod_rewrite 404 nếu .php

Options -MultiViews +FollowSymlinks -Indexes 
RewriteEngine on 


RewriteRule ^user/([0-9]+)$ user.php?id=$1 [L,QSA] 

Cảm ơn.

Trả lời

7
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/ 
RewriteRule ^.*$ - [R=404,L] 
+0

Chắc chắn R = 404 không phải là một trong các mã trạng thái được chấp nhận ... –

+0

hoạt động nhưng tôi vẫn có thể truy cập trang nếu tôi thêm dấu hỏi sau user.php ?. có lẽ tôi có thể làm điều gì đó về điều đó? –

+0

đủ công bằng. không thể tranh luận nếu nó hoạt động. –

2

này nên làm như lừa, tôi nghĩ rằng:

RewriteRule (.*)\.php$ path/to/your/404file [L] 
+0

vì vậy tôi cần thêm quy tắc cho tất cả các trang của mình? –

2

Một 301 redirectthể thể thích hợp hơn cho nhiệm vụ này.