2013-01-09 90 views
0

我想讓網址更適合我的網站用於SEO目的。.htaccess重寫規則改變動態網址

目前頁面顯示如下:

SITE/[number]-[page name].html 

我想獲得頁面中的格式像下面顯示。

example 1. 
SITE/[page name].html 

example 2. 
SITE/[page name]-[number].html 

(我寧願離開頁面數出來,如果可能的話,像例如1,但如果它必須包含我想它在網址的結尾處,就像上面的第二個例子)。

我在.htaccess文件中有以下規則。

RewriteRule ^([0-9]+)-(.*)$ site_page.php?page=$1 

我最大的問題是,我已經嘗試了很多方法讓重寫來做我所需要的。 我是一個完全新手,當涉及到重寫。

我已經改變了重寫以下沒有喜悅。

RewriteRule ^(.*)-([0-9]+)$ site_page.php?page=$1 
RewriteRule ^(.*)-([0-9])$ site_page.php?page=$1 
RewriteRule ^(.*+)-([0-9]+)$ site_page.php?page=$1 
RewriteRule ^([.*]+)-([0-9]+)$ site_page.php?page=$1 

上面我試過的是保留頁面id號碼,我最好是完全去掉數字。

我在setting.php文件中有以下幾行,用於控制網站如何創建相關鏈接。它會按照我的意願顯示它們。但我得到一個404錯誤,因爲我認爲重寫規則沒有顯示我期望它顯示的內容。

// non seo url 
$setup_url['normal']['resource']  = "$url_base/site_page.php?page=[number]"; 

// seo url 
$setup_url['seo']['resource'] = "$url_base/[number]-[name].html"; 

我看了很多關於國防部重寫規則的文章,似乎沒有得到任何地方。任何幫助將不勝感激。

非常感謝。 馬克。

+0

¿什麼是輸入的URL(顯示在瀏覽器的地址欄中)和什麼是映射的URL?這在你的問題中還不清楚,因爲重寫規則映射到PHP腳本,而你的URL示例映射到HTML頁面。 –

+0

映射的網址結束例如SITE/site_page.php?page = 3主要文件是.php .html只是模板文件(smarty),它只是顯示.html而不是url/ – Mark

回答

1

似乎你已經在規則中忘記了.html擴展名。

RewriteRule ^(.+)-(\d+)\.html$ site_page.php?$1=$2 [L] 
+0

感謝以上內容。我再也沒有收到404,但我仍然無法獲得正確的內容顯示。現在它只是空白。我一直在進一步測試,似乎無法看到我可能會出錯的地方。 – Mark

+0

這可能是由PHP腳本引起的。您是否嘗試加載類似http://domain.com/site_page.php?page=page的鏈接? – vmeln

+0

加載鏈接就像你說的那種工作(它不適用於自己的頁面名稱,如果你在開頭或結尾放一個數字,它只會使用它)。我認爲PHP腳本可能導致問題。由於大部分網站都是ION加密的,因此我可以改變的內容有限。我在考慮在.htaccess(。+)中可能沒有達到預期效果。如果(。+)包含完整鏈接,然後我們添加 - (\ d)給我們一個重複的數字/page-name-number-number.html而不是/page-name-number.html? – Mark