簡體   English   中英

用於 SEO 和漂亮 URL 的 rewritemap

[英]rewritemap for SEO and pretty URLs

我正在嘗試將一些動態 PHP URL 重定向和重寫為漂亮且 SEO 友好的 URL。 我已經通過 .htaccess 使用以下代碼成功地做到了這一點:

RewriteCond %{QUERY_STRING} ^somevar=green&nodescription=([a-zA-Z0-9_-]*)$
RewriteRule (.*) /green\/%1\/? [L,R=301]

RewriteRule ^green/([^/]*)/$ /script.php?somevar=green&nodescription=$1&rewrite=on [L]

這將創建一個有點漂亮的 URL 如下:

 http://www.mysite.com/green/aA43-/

正如我所說,這絕對可以正常工作。 除了一件事。 參數nodescription描述包含一組非描述性的隨機字母、數字和其他字符。

我想將 nodescription 參數重寫為更具描述性的參數。 我知道我可以通過 Apache 使用重寫映射來做到這一點。 但是,我沒有做這樣的事情的經驗,我不完全確定從哪里開始。

通常我會簡單地更改script.php以便它包含更多描述性參數,但這次我無法控制腳本; 我正在使用 cURL 從另一個站點拉它。

誰能給我一個例子來說明如何做到這一點?

謝謝!

馬特

好吧,要回答我自己的問題,要解決這個問題,您需要訪問 apache 服務器上的 httpd.conf 文件。 我的共享托管公司不允許訪問此文件(我懷疑是否允許您訪問)。

所以我硬着頭皮買了一個VPS。 我將在此處發布我為設置重寫映射而采取的步驟,希望它能幫助迷失的靈魂:) 好的,開始...

我的 VPS 安裝了WHM ,所以在 WHM 中我去了:

服務器配置>> Apache 配置>>包含編輯器

預虛擬主機包括>>所有版本

此功能會獲取您輸入的任何文本並將其包含在您的 httpd.conf 文件中,而不必擔心它會在稍后階段被覆蓋。 如果您的服務器上沒有 WHM,那么您可以直接將文本添加到您的 httpd.conf 文件中; 確保它位於任何虛擬主機之前。

好的,所以我包含了以下 map 聲明和重寫規則:

#Map to redirect (swaps key and value)
RewriteMap rwmap txt:/home/*/public_html/rdmap.txt

<Directory /home/*/public_html/test>

Options All -Indexes
RewriteEngine on

RewriteRule ^url/([^/]*)/$ /script.php?foo=${rwmap:$1|$1}&rewrite=on [L]

</Directory>

實際的 map 是一個包含鍵/值對的簡單文本文件 - 您需要將此文件放在RewriteMap rwmap txt:/home/*/public_html/rdmap.txt中聲明的目錄中。

還有你 go。 Apache 現在為我重寫了我的 URL,並且由於我的重寫圖,我現在有了一些漂亮漂亮的 SEO 優化鏈接! 萬歲!

RewriteEngine on
RewriteRule ^green/([^/]*)/(.*)$ /script.php?somevar=green&nodescription=$1&rewrite=on [L]

此重寫將允許您傳遞與重寫無關的“任意文本”。 例如:

http://www.mysite.com/green/aA43-/some-seo-boosting-title

仍將正確地重新路由到 script.php; 后一部分將被重寫忽略。

暫無
暫無

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

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