[英]Redirect one url to another url using .htaccess
因為我試圖重定向一個完整的URL
http://www.domain-name.com/download/?page=download
到這個URL
http://www.domain-name.com/download/show
為此,我添加了此代碼
rewriterule http://www.domain.com/download/?page=download(.*)$ http://www.domain.com/download/show$1 [r=301,nc]
但這不起作用,而是說我要求的URL說“禁止”。
任何人都可以為此提供任何解決方案。
使用htaccess文件將一個URL重定向到另一個URL:
Redirect 301 /en/php/project.html http://www.example.org/newpage.html
RewriteRule不包含查詢字符串,也不包括http-host。 除此之外,第一個參數是正則表達式模式。 如果沒有http主機,您將匹配download/page=download(etc)
或downloadpage=download(etc)
。
你需要2條規則。 一個將丑陋的URL重定向到漂亮的URL。 一條規則需要將好的URL重寫為實際的工作URL:
#Rewrite ugly url to nice url
RewriteCond %{QUERY_STRING} ^page=download&?(.*)$
RewriteRule ^download/?$ download/show?%1 [R,L]
#Now get the nice url to work:
RewriteRule ^download/show/?$ download/?page=download [QSA,END]
第二個規則使用QSA標志,這意味着它將原始查詢字符串附加到重寫中的查詢字符串。 END標志停止所有重寫,因為L-flag不會在.htaccess上下文中執行此操作。 END僅從Apache 2.3.9開始提供,如果在此之前的版本中使用,將導致內部服務器錯誤。 請注意,您可能必須修改第二個規則以指向實際文件。
你可以在這里找到文檔。
編輯:請注意,您永遠不應使用PERMANENT重定向測試htaccess規則。 如果你弄錯了,瀏覽器會記住這個錯誤! 如果一切正常,您只能將臨時重定向轉換為永久重定向。
你可以使用這個規則
Redirect /download/?page=download http://www.domain-name.com/download/show
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.