1
首先我要道歉大汗 - 我搜索了幾十個問題,我還處於完全喪失(自學者在非營利的PHP知識有限)。mod_rewrite的,乾淨的URL和GET參數
我有這樣http://www.welcomedesk.org/index.php?lang=en&page=home
一個URL(所有鏈接重定向到index.php)
我想它顯示像http://www.welcomedesk.org/en/home
我有這樣的mod_rewrite的: RewriteEngine敘述在
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?lang=$1&page=$2 [L]
它的工作!但我不知道我常用的菜單鏈接該怎麼辦?他們都受此功能:
function redoUrl($addvalues = array())
{
$query = '?';
$keysnew = array_keys($addvalues);
$myget = $_GET;
for ($i = 0; $i < count($addvalues); $i++)
{
$myget[$keysnew[$i]] = $addvalues[$keysnew[$i]];
}
$keys = array_keys($myget);
$i = 0;
//echo('<pre>'.print_r($addvalues).'</pre>');
foreach($myget as $get_param)
{
if('' <>$get_param)
{
if ($query <> '?') { $query .= '&'; }
$query .= $keys[$i] . '=' . $get_param;
}
$i++;
}
return basename($_SERVER['PHP_SELF']).$query;
}
我是否需要更改此功能?我需要手工重寫所有我的鏈接?
此外,該文件被命名爲$page_$lang.inc.php
並插入填充內容,一切都位於主文件夾,但是當我訪問/en/home
它假定新的文件夾/ EN /不再發現任何東西。 mod_rewrite的似乎忘了/ EN /是一個GET參數,只是失去了它。
@ user3119486嘗試刪除'basename($ _ SERVER ['PHP_SELF'])。'part –