簡體   English   中英

使用.htaccess將一個網址重定向到另一個網址

[英]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.

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