所以,如果我有以下網址:htaccess的刪除.php然後重寫URL發出
www.mydomain.com/parser.php?id=19127axbj1
我如何使用htcaccess,使其作爲
www.mydomain.com/19127axbj1
這可能嗎?我看運球有http://drbl.in/caYS
,所以想知道這樣的事情。
所以,如果我有以下網址:htaccess的刪除.php然後重寫URL發出
www.mydomain.com/parser.php?id=19127axbj1
我如何使用htcaccess,使其作爲
www.mydomain.com/19127axbj1
這可能嗎?我看運球有http://drbl.in/caYS
,所以想知道這樣的事情。
通常情況下,RewriteRules會說「如果請求的文件不存在,則向其他文件發送請求」。例如:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /parser.php [L]
然後,您會找到最初請求的路徑... $_SERVER['PATH_INFO']
?
這可以防止諸如遞歸請求之類的事情,並允許您在不打斷所有直接文件訪問的情況下擁有「漂亮」URL。
您可以使用此規則:
RewriteRule .* /parser.php?id=$0
改變 「www.example.com/whatever」 到 「www.example.com/parser.php?id=whatever」
然而,這仍然允許您直接訪問「/parser.php」,而不會受到掩碼URL的影響。爲了避免這種情況,你有PHP代碼重定向:
if (strpos($_SERVER['REQUEST_URI'], "parser.php") !== false) {
header("Location: /$_REQUEST[id]", true, 303);
exit;
}
這不會遞減到無窮大嗎? /asd - > /parser.php?id=asd - > /parser.php?id=parser.php?id=asd –
@OhCaN我還沒有嘗試過,所以我不知道,但如果你寫正確地說,Apache不會更新REQUEST_URI,因此它不會再重定向。 –
[?MOD-重寫或PHP路由器(可能重複http://stackoverflow.com/questions/1868154/mod-rewrite-or -php-router) – mario