2009-07-09 39 views
6

tôi có các nguyên tắc sau trong tập tin .htaccess hiện tại của tôi để chuyển hướng /videos/login/ yêu cầu /videos/login.phpquy tắc htaccess để chuyển tiếp/đăng nhập/và/đăng nhập vào cùng một trang?

RewriteRule login/ /videos/login.php 

này hoạt động tốt nếu tôi trang đăng nhập truy cập sử dụng http://mysite.com/videos/login/ nhưng khi tôi đang cố gắng để truy cập vào cùng một trang sử dụng http://mysite.com/videos/login (mà không kết thúc dấu gạch chéo) thì nó cho tôi lỗi "không tìm thấy trang 404".

Vui lòng cho tôi biết quy tắc chính xác của tệp .htaccess để bất kỳ yêu cầu nào cho http://mysite.com/videos/login/ hoặc http://mysite.com/videos/login sẽ trỏ đến cùng một trang /videos/login.php.

Cảm ơn

Trả lời

13

Chỉ cần chắc các dấu gạch chéo tùy chọn:

RewriteRule ^videos/login/?$ /videos/login.php 

Nhưng bạn nên sử dụng tốt hơn chỉ là một biến thể (có hoặc không có trailing slash) và chuyển hướng một đến khác:

# add trailing slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .*[^/]$ /$0/ [L,R=301] 

# remove trailing slash 
RewriteRule (.*)/$ /$1 [L,R=301] 
+0

@Gumbo Quy tắc của bạn hoạt động tốt, mở cùng một trang có dấu và không có dấu gạch chéo, nhưng tôi muốn khi có ai truy cập/video/đăng nhập thì anh ta sẽ được chuyển hướng đến/video/login/có thể sử dụng htaccess hay không. – Prashant

+0

Tôi vừa đề cập đến cả hai tùy chọn. Nếu bạn muốn dấu gạch chéo, chỉ cần sử dụng trước đây. – Gumbo

+0

Nhưng #add dấu gạch chéo sẽ thêm dấu gạch chéo vào tất cả các URL của tôi, mà tôi không muốn, có một số URL được chọn mà tôi muốn cơ sở này – Prashant

1

Sử dụng mod_rewrite

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/videos/login/?$ 
RewriteRule (.*) /videos/login.php [L,R=301] 
0
redirect 301 /videos/login/index.html http://yoursite.com/videos/login.php 

The server will change the address http://mysite.com/videos/login/ and http://mysite.com/videos/login both to http://mysite.com/videos/login/index.html, based on the configuration but this is default. Before it encounters a 404 this address is redirected to the new one. At least this works at my site.

Đã phải sử dụng trước bởi vì trang web chúng ta hãy cho tôi gửi chỉ có một siêu liên kết:/

2

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

RewriteRule^đăng nhập (/ |) $ /videos/login.php

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