[英]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? 項目/頁面,以使規范網址成為訪問該資源的唯一方法。
在您的代碼中沒有提到重定向,您只是在重寫。
這樣想吧
要將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.