2015-01-14 49 views
-2

我使用ModRewrite如下,以URL轉換在我的網站是搜索引擎友好:PHP:如何讓我的網站的另一個URL(網頁)的內容,而在酒吧改變地址

RewriteRule user/(.*)/$   seo-url-user-by-name.php?username=$1 

現在我寫SEO的URL,用戶按name.php代碼,我期待在PHP的方式來重定向到:

user.php?uid=<uid> 

,使搜索引擎優化的URL,用戶按name.php將基本上返回內容user.php?uid=<uid>但不改變地址欄中的地址爲user.php?uid=<uid>

我該怎麼做?

+2

你看錯了。你可能想將'user.php?uid = 1'轉換爲'user/1 /'這樣的東西,而不是將user.php改爲seo-url-user-by-name.php。你應該想讓你的URL更漂亮,而不是更漂亮醜陋。 – developerwjk

+0

你不能這樣做。 Web服務器負責將URL映射到資源(即您的PHP腳本),因此您的PHP腳本無法強制將用戶完全隱藏的重定向。您可以得到最接近的是將SEO網址直接映射到最終資源腳本,並刪除您現在使用的任何「MITM」腳本。 – Lee

回答

0

只需將user.php包含在seo-url-user-by-name.php中即可。要正確地查詢查詢字符串,您必須覆蓋$ _GET中的值。

$_GET['uid'] = 'whatever you want'; 
include 'user.php'; 
0

你正在向後退。您的代碼應該輸出的唯一網址是「友好」網址。這些是將出現在製作的HTML中的URL以及用戶地址欄中顯示的內容。

例如

<a href="/user.php?id=foo">Bad URL</a>   (URL #1) 
<a href="/user/foo">This URL is fine</a>  (URL #2) 

你不應該輸出任何東西,除了URL#2的。將這個乾淨的(實際上不存在的)URL轉換爲服務器上真正的URL是你服務器的責任。 PHP本身不應該關心也不會看到/user/foo的URL。 PHP將像往常一樣被調用爲/user.php?id=foo,並照常開展業務。

遠程用戶永遠不會看到發生重寫,他們只會看到一個請求/user/foo

相關問題