2015-06-03 54 views
0

嗯我正在用這個打破我的頭。我在我的php mysql項目中使用SEO友好的網址,並且一切正常,直到重音或ñ出現。這方面的一個例子是單詞「AÑO」或「力」,這使我爲錯誤消息:友好的Url問題字符串與 - 或口音

未找到

所請求的URL/AA±o及URL/RAO/

Conexion.php

$db = new PDO('mysql:host='.$db_host.';dbname='.$db_database, $db_user, $db_pass);$db->exec("set names utf8"); 

我的DB整理是:

utf8_general_ci 

網址project.php看起來是這樣的:

http://www.mywebsite.cl/año 

project.php(文件誰得到的數據,並把我喜歡AA制±o或/饒奇怪的字符/)

<meta charset="utf-8" /> 

$result->execute(array($_GET['project'])); 

.htaccess

AddDefaultCharset utf-8 
RewriteRule ^([0-9a-zA-Z\-]+)/$ project.php?work=$1 

謝謝。

回答

0

我的理解是,URI真的不應該有「外來」/ unicode字符,並且你應該堅持使用ASCII字符。

http://tools.ietf.org/html/rfc3986#section-2

,我已經看到人們處理這個問題是在兩個URL的創建每個URL的副本,最徹底的方法。例如example.com/url和example.com/url,其中前者實際上將用戶重定向到後者。我認爲這可能需要通過htaccess或類似的東西來完成。而對於搜索引擎優化的目的,你會想要使用規範,這樣你就不會被標記爲重複的內容。

當然,這是我幾年前的理解,unicode字符變得越來越普遍,所以事情可能發生了變化。

+0

確實@Kylan,我看到很多網站在他們的網址中使用這個特殊的字符,所以這就是爲什麼即時通訊尋找一些幫助/指導。謝謝btw :) – fecapeluda

1

國際化域名(IDN)允許在URL中使用非ASCII字符。這是通過將包含非ASCII字符的字符串轉換爲ASCII解釋(稱爲Punycode)並將4個字符的字符串「xn--」與正常的ASCII區分開。

例如,導航到以下IDN將解析爲español.com(在最後三個字符表示特殊字符和它的位置):

xn--espaol-zwa.com 

國際化資源化標識符(IRI)是相當於適配網址(請參閱RFC 3987)。