簡體   English   中英

強制網址重寫/重定向?

[英]Forcing urls to rewrite/redirect?

此重寫方法有效,但不能強制將URL重寫/重定向到新URL。

我用這個:

RewriteEngine on
RewriteRule ^page/([^/\.]+)$ search.php?q=$1 

我可以訪問重寫的url(項目/頁面/等),但是仍然可以訪問舊的url /鏈接(search.php?q = etc)而無需重定向。

注意:我使用$_SERVER變體創建url,並且在localhost上。

您必須項目/頁面重寫為search.php? 為了隱藏丑陋的網址。

重定向 search.php? 項目/頁面,以使規范網址成為訪問該資源的唯一方法。

在您的代碼中沒有提到重定向,您只是在重寫。

這樣想吧

  • 重寫將丑陋的URL隱藏在規范的URL之后(它隱藏了它們,但並沒有消除它們);
  • 重定向響應瀏覽器,並顯示一條消息,例如“ search.php?已移至項目/頁面,請嘗試使用該鏈接”,然后瀏覽器將遵循新鏈接;

要將ugly URLs重定向到SEO友好URL,您將需要另一個重寫規則。 使您的.htaccess代碼如下所示:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^page/([^/\.]+) search.php?q=$1 [L,QSA,NC]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+search\.php\?q=([^\s]+) [NC]
RewriteRule ^ page/%1? [R=302,L]

確認它可以正常工作后,將R=302更改為R=301

您需要在重寫規則上輸入[R=301]才能將其轉換為客戶端重定向。 否則,它純粹是內部重寫,客戶端將永遠不會看到該URL被更改。

例如

RewriteRule ^page/([^/\.]+)$ search.php?q=$1 [R=301,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM