我希望答案會是這麼簡單,我會哭,但我似乎無法弄清楚。我是mod_rewrite的新手。如何阻止mod_rewrite將鏈接追加到url?
我想改變我的鏈接,如domain.com/?p=about到domain.com/about* / *(帶有斜線),它工作正常,但每當我移動到一個鏈接,它會將新鏈接附加到網址的後面。例如,我有一個關於和一個聯繫鏈接。如果我點擊它導航到domain.com/about/,那麼如果我點擊聯繫人,它將導航到domain.com/about/contact/,並將繼續添加鏈接到URL的末尾。如果我在domain.com並點擊鏈接(在這種情況下),它將轉到domain.com/about/,如果我再次點擊4次,我的地址欄會顯示「domain.com/ about/about/about/about/about /「我在下面的一個非常簡單的例子中轉載了這個,我做錯了什麼?
的.htaccess
RewriteEngine On
RewriteRule ([a-zA-Z0-9]+)/$ index.php?p=$1
的index.php
<a href="about/">about</a> | <a href="contact/">contact</a><br><br>
<?php
if(!isset($_GET['p'])) {
echo "home";
} else {
echo $_GET['p'];
}
?>
謝謝您的幫助!
編輯: 如果我使用絕對路徑,它可以正常工作,但我寧願不,如果我不必絕對必須。
EDIT2:添加
RewriteBase/
斷裂的鏈接。他們似乎要去domain.com/about/和.../contact /,但我得到一個404 - 我假設我使用的規則與我進行鏈接的方式有點不相容,這就是爲什麼我也包括index.php。
如何只在其他兩條線之間增加一個'RewriteBase /'在你的'.htaccess'中? – Havelock
@Havelock:我也試過,但那時鏈接不再起作用。 – sdouble
然後可能看看你是如何建立你的網頁上的鏈接......(無論標籤用戶名o.O發生了什麼) – Havelock