2011-10-19 35 views
7

Tôi đã đi qua tất cả các chủ đề được trả lời về viết lại vấn đề quy tắc. Đã thử các đề xuất, nhưng tôi vẫn không biết mình đang làm gì sai.RewriteRule cho chuyển hướng 301

Tôi muốn chuyển hướng 301 của các URL cũ sang URL mới. Ví dụ:

old url : http://www.xyz.com/abc/topics.html 
new url : http://www.xyz.com/index.php#first 

tôi đang cố gắng cai trị sau trong .htaccess:

RewriteEngine on 
RewriteRule ^\/abc\/(.+)$ http://www.xyz.com/index.php#first [L,R=301] 

Bất cứ lời khuyên được đánh giá cao

Trả lời

18

Hãy thử:

RewriteRule ^abc\/(.+)$ http://www.example.com/index.php#first [L,R=301, NE] 
+0

Cảm ơn, giải pháp này chuyển hướng đến trang đích nhưng trong url thay vì '#' nó hiển thị '% 23', do đó không di chuyển đến neo. – mooglife

+3

tìm thấy giải pháp, Đã phải sử dụng cờ [NE]. vì vậy bây giờ là:^abc \/(. +) $ http://www.xyz.com/index.php#first [L, R = 301, NE] – mooglife

4

Bạn có thể, tất nhiên, làm điều đó bằng cách "mod_rewrite", nhưng trong này tình huống tôi đề nghị bạn sử dụng mod_alias vì nó nhanh hơn và đơn giản hơn (xem phản hồi SO này: mod_rewrite or mod_alias?)

Như sau:

Redirect permanent /abc http://www.xyz.com/index.php#first 
+0

tôi đã đi qua mod_alias, có vẻ như nó là nhanh hơn. nhưng một nhược điểm là: xyz.com/abc/test chuyển hướng đến http://www.xyz.com/index.php#first/test – mooglife

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