2 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
您似乎對(duì)URL和重寫的工作方式感到困惑。該概念:“我需要重寫this2到this1 ”是指:
有人在地址欄中輸入this2或點(diǎn)擊this2鏈接。
服務(wù)器看到了對(duì)this2的請(qǐng)求
服務(wù)器都有一套規(guī)則來重寫內(nèi)部從請(qǐng)求this2到this1
this1被提供給瀏覽器
請(qǐng)注意,所有這一切中的重要概念是瀏覽器請(qǐng)求“this2”鏈接,并且服務(wù)器在內(nèi)部將請(qǐng)求重寫為“this1”。但這可能不是你想要的,因?yàn)槟菚r(shí)你會(huì)把丑陋的URL和重寫它們看成漂亮的URL,而不是那些看起來很友好的URL。
很多時(shí)候,特別是在這里,人們要求“我想將此URL更改為此URL”之類的內(nèi)容,或者在有兩步重定向過程時(shí)要求重寫。這是第2步(你不要求的話)這需要this1和瀏覽器重定向到this2使URL地址欄更改為this2:
有人在地址欄中輸入this1或點(diǎn)擊this1鏈接。
服務(wù)器看到this1的請(qǐng)求
服務(wù)器有一組規(guī)則可以將瀏覽器外部重定向到this2。
瀏覽器的地址欄現(xiàn)在說明了這個(gè)2
瀏覽器請(qǐng)求this2
服務(wù)器看到了對(duì)this2的請(qǐng)求
服務(wù)器都有一套規(guī)則來重寫內(nèi)部從請(qǐng)求this2到this1
this1被提供給瀏覽器
所以這整個(gè)迂回的卷積只是所以當(dāng)瀏覽器嘗試去this1,它就會(huì)被重定向到this2但實(shí)際上仍然被提供從內(nèi)容this1。
所以我認(rèn)為這一定是你想要的。試著把它放在你的htaccess文件中:
RewriteEngine On# check if the actual request if for "this1"RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profiles/tutors/index.php\?tutorCode=([0-9]+)&tutorName=([^&]+)&?([^\ ]+)# redirect to "this2"RewriteRule ^profiles/tutors/index\.php /%1/%2/?%3 [R=301,L,NE]# now rewrite "this2" back to "this1"RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^([0-9]+)/(.+)/$ /profiles/tutors/index.php?tutorCode=$1&tutorName=$2 [L,QSA]
請(qǐng)注意,該city
參數(shù)永遠(yuǎn)不會(huì)在友好URL中進(jìn)行編碼,因此它將作為查詢字符串的一部分保留。你可以改變它,以便友好的URL看起來像:/id/name/city/
而不僅僅是/id/name/
,修改應(yīng)該是微不足道的。

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
那可能就在附近:
RewriteEngine onRewriteRule ^([0-9]+)/(.+)$ /profiles/tutors/index.php?tutorCode=$1&tutorName=$2 [NC,QSA]
由于您沒有指定如何處理它,我沒有考慮您的city
參數(shù),因此添加QSA
(查詢字符串附加)到規(guī)則,因此GET中的參數(shù)仍然傳遞給腳本。
添加回答
舉報(bào)