,因爲你已經創建了一個無限循環你得到一個500錯誤。
說明:(當斜線由可選)
domain.com/page_name/
改寫爲/?page=page_name
/?page=page_name
意味着/index.php?page=page_name
- 但現在您的規則匹配
index.php
太
- - > LOOP
爲了避免它,可以如果請求的URI是不存在的文件/文件夾的前rewritting使用此代碼代替
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /?page=$1 [L]
此代碼檢查。
如果您沒有使斜線可選,則您的規則可以執行此操作只有。
RewriteRule ^([^/]+)/$ /?page=$1 [L]
而且這將是一個更好的主意,因爲你不會有重複的內容(2個不同的網址 - 附/不帶尾隨slash-給予相同的內容:壞的搜索引擎)。
結論:選擇一種格式,但不是兩種。如果你選擇without trailing slash
格式,那麼你可以使用我的第一部分代碼(你可以刪除?
)。否則,你可以選擇我的第二個(看起來與你的幾乎一樣)。
注意:你不需要逃避/
與mod_rewrite的
'重寫規則^([^ /] *)(?:\ /)?$ /頁= $ 1 [L]'是什麼你要。 – Forien