2 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
RewriteRule index.php?url=$1 [QSA, L]
我認(rèn)為你的問(wèn)題中有幾個(gè)明顯的拼寫錯(cuò)誤(?),使這個(gè)指令完全無(wú)效......你缺少一個(gè)模式,所以這實(shí)際上不會(huì)匹配任何東西,并且 flags 參數(shù)中的錯(cuò)誤空間在語(yǔ)法上是無(wú)效的,導(dǎo)致 500 內(nèi)部服務(wù)器錯(cuò)誤響應(yīng)?!RewriteRule
該指令應(yīng)寫如下:RewriteRule
RewriteRule ^([\w/-]+)$ index.php?url=$1 [QSA,L]
^([\w/-]+)$
匹配包含以下任意字符的 URL 路徑:、、、(下劃線)、(斜杠)和(連字符)。我排除了點(diǎn),它自然是真實(shí)文件名的一部分。a-z
A-Z
0-9
_
/
-
您還應(yīng)該確保禁用 MultiViews,以便mod_negotiation不會(huì)重寫之前的請(qǐng)求 - 因?yàn)槟摹盁o(wú)擴(kuò)展名”請(qǐng)求似乎直接映射到文件名。例如。 映射到 。將以下內(nèi)容放在文件頂部:mod_rwrite
/user
/user.php
.htaccess
Options -MultiViews
但是當(dāng)我被賦予我的URL斜杠時(shí),它停止顯示CSS或其他IMG目錄。
這不是 的問(wèn)題,而是通過(guò)使用靜態(tài)資源的相對(duì)客戶端 URL 引起的。當(dāng)您請(qǐng)求URL時(shí),瀏覽器將解析相對(duì)于(而不是文檔根 - 這可能是您所期望的)的任何相對(duì)URL。如果你有一個(gè)相對(duì)的URL,那么瀏覽器自然會(huì)解決這個(gè)問(wèn)題 - 這可能不存在(并且可能會(huì)被重寫 - 但這不是問(wèn)題 - 它不存在的事實(shí)是問(wèn)題所在)。.htaccess
/user/anonymous
/user/anonymous
css/styles.css
/user/css/styles.css
index.php
如果您查看瀏覽器中的網(wǎng)絡(luò)流量(HTTP請(qǐng)求),它應(yīng)該會(huì)為您提供有關(guān)正在發(fā)生的事情的線索。
您需要將客戶端 URL 更改為使用根相對(duì)(以斜杠開頭)或絕對(duì)(方案 + 主機(jī)名)URL 來(lái)解決此問(wèn)題。

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
在 .htaccess 文件中使用以下代碼
RewriteEngine On
#main user page
RewriteRule ^user$ index.php?url=user [L]
#user detail page
RewriteRule ^user/([^/]*)$ index.php?url=$1 [L]
- 2 回答
- 0 關(guān)注
- 89 瀏覽
添加回答
舉報(bào)