2011-10-25 36 views
10

Tôi đã cập nhật trang web của mình hai lần kể từ năm ngoái và tôi có các tên trang khác nhau kể từ phiên bản đầu tiên của mình. Có thể tạo các quy tắc động trong apache không?Quy tắc động .htaccess

ví dụ:

tôi sử dụng để có các trang này (ví dụ):

  • /abc123 (phiên bản 1)
  • /abc_123 (phiên bản 2)
  • /abc123/(phiên bản 3 - hiện tại)

Tôi muốn tạo quy tắc sẽ chuyển hướng abc123 sang abc_123 nếu nó tồn tại và abc_123 thành abc-123 nếu nó e xist. Cảm ơn

+0

Không có câu trả lời nào bạn chấp nhận về "nếu nó tồn tại". Vì vậy, rõ ràng đó không thực sự là một phần của câu hỏi của bạn, tại sao bạn hỏi nó? –

Trả lời

16

Tại sao không có điều này?

RewriteRule ^([a-z]+)([0-9]+)$ /$1-$2 [NC,L] 
RewriteRule ^([a-z]+)_([0-9]+)$ /$1-$2 [NC,L] 

EDIT:

hoặc bạn có thể sử dụng 1 quy tắc:

RewriteRule ^([a-z]+)(_?)([0-9]+)/?$ /$1-$3 [NC,L] 

cách này thật dễ dàng để thêm ký tự trong (_?) thay vì tạo ra các quy tắc tương tự hơn và hơn với một phương sai nhỏ.

+0

Cảm ơn Bạn đã làm việc –

-6

tôi thấy this example:

RewriteEngine on 
# 
# If the requested URL exists as a file with a .php extension 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
# internally rewrite requested .html URL to .php file 
RewriteRule ^(([^/]+/)*[^.]+)\.html$ /$1.php [NC,L] 

Bạn sẽ muốn đọc về các tùy chọn khác nhau và chỉnh sửa nó để làm cho nó làm việc cho tình hình của bạn.

+6

Tôi đã thử nhưng không hoạt động –

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