Điểm:2

Khi thay đổi thành WWW, tất cả các URL hiển thị index.php?page= làm cách nào để xóa index.php?page=?

lá cờ us

Gần đây, tôi đã quản lý để chuyển hướng tất cả các URL từ không phải www sang www vì tôi gặp lỗi SEO liên quan đến các trang web trùng lặp.

Khi tôi đã áp dụng các quy tắc www thì tất cả các URL của tôi bắt đầu hiển thị index.php?page= mà trông không đẹp.

Đây là hiện tại của tôi .htaccess quy tắc:


Viết LạiEngine Trên

viết lại cơ sở /

RewriteRule ^([-a-zA-Z0-9]+)$ index.php?page=$1

RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Viết LạiEngine Trên
viết lại cơ sở /

# Xóa index.php?page=$1
RewriteCond %{THE_REQUEST} ^.*/index.php?page=$1
RewriteRule ^(.*)index.php?page=$1$ https://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)index$ https://www.example.com/$1 [R=301,L]

Tôi đã thử mã ở trên và nó không hoạt động. Có bất cứ điều gì tôi đang mất tích?

Điểm:0
lá cờ kz

Quy tắc của bạn là theo thứ tự sai. Chuyển hướng không phải www sang www bên ngoài của bạn cần phải trước khi viết lại nội bộ, ngay sau lần đầu tiên viết lại cơ sở chỉ thị.

Theo nguyên tắc chung, "chuyển hướng" phải luôn đi trước "viết lại".

CẬP NHẬT: Bạn sẽ cần đảm bảo rằng bạn đã xóa bộ đệm của trình duyệt (và bất kỳ bộ đệm trung gian nào) vì chuyển hướng 301 (vĩnh viễn) bị lỗi chắc chắn sẽ được trình duyệt lưu vào bộ đệm.

Tóm lại, các quy tắc của bạn sẽ trông như thế này:

Viết LạiEngine Trên

viết lại cơ sở /

# Chuyển hướng không phải www sang www
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

# Viết lại nội bộ cho các trang
RewriteRule ^([-a-zA-Z0-9]+)$ index.php?page=$1 [L]

Bất kỳ dấu chấm theo nghĩa đen nào trong biểu thức chính quy cần phải được thoát khỏi dấu gạch chéo ngược. Và bạn nên bao gồm l cờ khi viết lại nếu bạn thêm các quy tắc bổ sung sau này.

(Lưu ý: Tôi cho rằng bạn đang liên kết tới các URL có dạng /đây-là-trang-của-tôi và không /index.php?page=this-is-my-page - nếu không, bạn cần thay đổi các liên kết nội bộ của mình.)

lá cờ us
Tôi vừa sắp xếp đơn đặt hàng nhưng các liên kết của tôi vẫn hiển thị dưới dạng:https://www.culture-insider.com/?page=ExperienceMorocco thay vì https://www.culture-insider.com/ExperienceMorocco
lá cờ kz
@SihamLahmine Bạn cần đảm bảo rằng bạn đã xóa bộ đệm của trình duyệt và mọi bộ đệm trung gian vì chuyển hướng 301 (vĩnh viễn) bị lỗi sẽ được lưu vào bộ đệm. Bạn cũng nên bao gồm cờ `L` khi viết lại để có biện pháp tốt. Tôi cho rằng bạn cũng đã loại bỏ một vài quy tắc cuối cùng?
lá cờ kz
@SihamLahmine Tôi đã cập nhật câu trả lời của mình để làm rõ giao diện của các chỉ thị. Ngoài ra, tôi cho rằng bạn đang liên kết tới các URL có dạng `/this-is-my-page` chứ không phải `/index.php?page=this-is-my-page`?
lá cờ us
cảm ơn bạn rất nhiều, điều này thực sự rõ ràng và dễ kiểm tra. Tôi có thể hỏi làm cách nào để biết URL của tôi được liên kết từ đâu để trả lời chính xác câu hỏi không?
lá cờ us
MrWhite, tôi nghĩ rằng tôi đã sửa nó nhờ bạn, tôi sẽ đợi đến ngày mai để chắc chắn - rất cảm ơn sự giúp đỡ của bạn!
lá cờ kz
@SihamLahmine "làm cách nào để biết URL của tôi được liên kết từ đâu" - Tôi đang đề cập đến liên kết HTML trong mã nguồn của bạn - _liên kết nội bộ của bạn_. I E. Các neo của bạn phải có dạng `` và không ``.
lá cờ kz
@SihamLahmine "Tôi nghĩ rằng tôi đã sửa nó nhờ bạn" - Không có gì. Nếu điều này giúp trả lời câu hỏi của bạn thì vui lòng đánh dấu nó là được chấp nhận (đánh dấu bên dưới mũi tên biểu quyết, bên cạnh câu trả lời của tôi) - để giúp những người đọc khác và xóa câu hỏi khỏi hàng đợi câu hỏi chưa được trả lời. Bạn cũng có thể upvote câu trả lời mà bạn thấy hữu ích. Cảm ơn, rất cảm kích. :)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.