您好,我需要幫助重定向我的.htaccess文件。我想添加一個字符串到URL的末尾。例如:使用.htaccess文件將字符串添加到url
當有人訪問這個網址:
www.mysite.com/example
我想重寫URL這樣說:
www.mysite.com/result.html?search=example
所以我只需要添加字符串result.html?search=
之前,無論是在網址的末尾。
這個詞的例子只是一個佔位符,我需要放在那裏工作的任何單詞。
謝謝!
您好,我需要幫助重定向我的.htaccess文件。我想添加一個字符串到URL的末尾。例如:使用.htaccess文件將字符串添加到url
當有人訪問這個網址:
www.mysite.com/example
我想重寫URL這樣說:
www.mysite.com/result.html?search=example
所以我只需要添加字符串result.html?search=
之前,無論是在網址的末尾。
這個詞的例子只是一個佔位符,我需要放在那裏工作的任何單詞。
謝謝!
這應該會有幫助。
RewriteEngine on
RewriteBase/
RewriteRule ^page/([^/]+)/? result.html?search=$1
對我來說,問題實際上讀取不同的,這就是爲什麼我更喜歡發表任何答案... – arkascha
之前問@ arkascha你所說的話也是有道理的,可以從不同的角度來看待問題,但我認爲這是他在這裏想要達到的目標。讓我們再來澄清一下。 –
根據您的附加評論我想這是你實際上是在尋找這樣一個問題:
RewriteEngine on
RewriteRule ^/?(.+)/?$ /result.html?search=$1 [END]
如果您遇到了這一原則,HTTP狀態500(「內部服務器錯誤」),那麼你有可能會運行一個非常舊的apache http服務器版本。嘗試使用[L]
標誌,而不是[END]
標誌。在這種情況下,你也會在你的http服務器錯誤日誌文件中找到相應的提示。
上述規則在http服務器主機配置和動態配置文件(.htaccess
樣式文件)中同樣適用。顯然重寫模塊必須在http服務器上加載並激活。如果您決定使用動態配置文件,那麼您還需要確保這些文件實際上是由http服務器考慮的。閱讀有關該文檔的AllowOverride
指令。
還有一個常規提示:你應該總是喜歡在http服務器(虛擬)主機配置中放置這樣的規則,而不是使用動態配置文件(.htaccess
樣式文件)。這些文件出了名的錯誤,很難調試,他們真的放慢了服務器。它們只支持作爲的情況下最後的選擇,你沒有對主機配置控制(讀:真的很便宜的託管服務提供商),或者如果你有依賴於寫自己的重寫規則(這是一個明顯的安全惡夢的應用)。
輝煌:)儘管只是假設,你的答案有很多深度。 –
感謝您的回答,但我得到了一個500錯誤['L]'和'[END]'我從你的答案中學到了很多東西,儘管如此謝謝! –
@cup_of最有可能的原因是重寫模塊根據您的評論而被_not_加載......如前所述:您應該查看您的http服務器錯誤日誌文件。這是您可以閱讀有關服務器遇到的問題的更詳細的內部信息的地方。 – arkascha
對不起,但你不清楚你實際要求什麼。請在你的問題精確:這兩個變種是_external_ URL實際上是由客戶端(瀏覽器)要求什麼_internal_資源它應該被改寫成?你的例子讀起來有點像你正在尋找重定向,而不是重寫。 – arkascha
客戶端請求的網址是'www.mysite.com/example',內部資源應重寫爲'www.mysite.com/result.html?search = example' –
示例是文件夾或文件? –