## URL设计
`6.0`çURL访é®åè·¯ç±å½±åï¼å¦æå¨æ²¡æå®ä¹æå¹é
è·¯ç±çæ
åµä¸ï¼å¹¶ä¸æ²¡æå¼å¯å¼ºå¶è·¯ç±æ¨¡å¼çè¯ï¼ï¼åæ¯åºäºï¼
```
http://serverName/index.phpï¼æè
å
¶å®å
¥å£æ件ï¼/æ§å¶å¨/æä½/åæ°/å¼â¦
```
å¦æ使ç¨èªå¨å¤åºç¨æ¨¡å¼çè¯ï¼URLä¸è¬æ¯
```
http://serverName/index.php/åºç¨/æ§å¶å¨/æä½/åæ°/å¼...
```
>[danger] æ®é模å¼çURL访é®ä¸åæ¯æï¼ä½åæ°å¯ä»¥æ¯ææ®éæ¹å¼ä¼ å¼
å¦æä¸æ¯æPATHINFOçæå¡å¨å¯ä»¥ä½¿ç¨å
¼å®¹æ¨¡å¼è®¿é®å¦ä¸ï¼
```
http://serverName/index.php?s=/æ§å¶å¨/æä½/[åæ°å/åæ°å¼...]
```
## URLéå
å¯ä»¥éè¿URLéåéèåºç¨çå
¥å£æ件`index.php`ï¼ä¹å¯ä»¥æ¯å
¶å®çå
¥å£æ件ï¼ä½URLéåé常åªè½è®¾ç½®ä¸ä¸ªå
¥å£æ件ï¼,ä¸é¢æ¯ç¸å
³æå¡å¨çé
ç½®åèï¼
### \[ Apache \]
1. `httpd.conf`é
ç½®æ件ä¸å è½½äº`mod_rewrite.so`模å
2. `AllowOverride None` å°`None`æ¹ä¸º `All`
3. æä¸é¢çå
容ä¿å为`.htaccess`æ件æ¾å°åºç¨å
¥å£æ件çå级ç®å½ä¸
~~~
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
~~~
### \[ IIS \]
å¦æä½ çæå¡å¨ç¯å¢æ¯æ`ISAPI_Rewrite`çè¯ï¼å¯ä»¥é
ç½®`httpd.ini`æ件ï¼æ·»å ä¸é¢çå
容ï¼
~~~
RewriteRule (.*)$ /index\.php\?s=$1 [I]
~~~
å¨IISçé«çæ¬ä¸é¢å¯ä»¥é
ç½®`web.Config`ï¼å¨ä¸é´æ·»å `rewrite`èç¹ï¼
~~~
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
~~~
### \[ Nginx \]
å¨Nginxä½çæ¬ä¸ï¼æ¯ä¸æ¯æPATHINFOçï¼ä½æ¯å¯ä»¥éè¿å¨`Nginx.conf`ä¸é
置转åè§åå®ç°ï¼
~~~
location / { // â¦..çç¥é¨å代ç
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
~~~
> å
¶å®å
é¨æ¯è½¬åå°äºThinkPHPæä¾çå
¼å®¹URLï¼å©ç¨è¿ç§æ¹å¼ï¼å¯ä»¥è§£å³å
¶ä»ä¸æ¯æPATHINFOçWEBæå¡å¨ç¯å¢ã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- URL访é®
- 容å¨åä¾èµæ³¨å ¥
- æå¡
- é¨é¢
- ä¸é´ä»¶
- äºä»¶
- è·¯ç±
- è·¯ç±å®ä¹
- åéè§å
- è·¯ç±å°å
- è·¯ç±åæ°
- è·¯ç±ä¸é´ä»¶
- è·¯ç±åç»
- èµæºè·¯ç±
- 注解路ç±
- è·¯ç±ç»å®
- ååè·¯ç±
- MISSè·¯ç±
- è·¨å请æ±
- URLçæ
- æ§å¶å¨
- æ§å¶å¨å®ä¹
- åºç¡æ§å¶å¨
- 空æ§å¶å¨
- èµæºæ§å¶å¨
- æ§å¶å¨ä¸é´ä»¶
- 请æ±
- 请æ±å¯¹è±¡
- 请æ±ä¿¡æ¯
- è¾å ¥åé
- 请æ±ç±»å
- HTTP头信æ¯
- 伪éæ
- åæ°ç»å®
- 请æ±ç¼å
- ååº
- ååºè¾åº
- ååºåæ°
- éå®å
- æ件ä¸è½½
- æ°æ®åº
- è¿æ¥æ°æ®åº
- åå¸å¼æ°æ®åº
- æ¥è¯¢æé å¨
- æ¥è¯¢æ°æ®
- æ·»å æ°æ®
- æ´æ°æ°æ®
- å é¤æ°æ®
- æ¥è¯¢è¡¨è¾¾å¼
- é¾å¼æä½
- where
- table
- alias
- field
- strict
- limit
- page
- order
- group
- having
- join
- union
- distinct
- lock
- cache
- comment
- fetchSql
- force
- partition
- failException
- sequence
- replace
- extra
- duplicate
- procedure
- èåæ¥è¯¢
- å页æ¥è¯¢
- æ¶é´æ¥è¯¢
- é«çº§æ¥è¯¢
- è§å¾æ¥è¯¢
- JSONå段
- åæ¥è¯¢
- åçæ¥è¯¢
- æ¥è¯¢äºä»¶
- è·åå¨
- äºå¡æä½
- åå¨è¿ç¨
- æ°æ®é
- æ°æ®åºé©±å¨
- 模å
- å®ä¹
- 模åå段
- æ°å¢
- æ´æ°
- å é¤
- æ¥è¯¢
- æ¥è¯¢èå´
- JSONå段
- è·åå¨
- ä¿®æ¹å¨
- æç´¢å¨
- æ°æ®é
- èªå¨æ¶é´æ³
- åªè¯»å段
- 软å é¤
- ç±»å转æ¢
- 模åè¾åº
- 模åäºä»¶
- 模åå ³è
- ä¸å¯¹ä¸å ³è
- ä¸å¯¹å¤å ³è
- è¿ç¨ä¸å¯¹å¤
- è¿ç¨ä¸å¯¹ä¸
- å¤å¯¹å¤å ³è
- å¤æå ³è
- å ³èé¢è½½å ¥
- å ³èç»è®¡
- å ³èè¾åº
- è§å¾
- 模æ¿åé
- è§å¾è¿æ»¤
- 模æ¿æ¸²æ
- 模æ¿å¼æ
- è§å¾é©±å¨
- é误åæ¥å¿
- å¼å¸¸å¤ç
- æ¥å¿å¤ç
- è°è¯
- è°è¯æ¨¡å¼
- Traceè°è¯
- SQLè°è¯
- åéè°è¯
- è¿ç¨è°è¯
- éªè¯
- éªè¯å¨
- éªè¯è§å
- é误信æ¯
- éªè¯åºæ¯
- è·¯ç±éªè¯
- å ç½®è§å
- 表å令ç
- 注解éªè¯
- æ项
- ç¼å
- Session
- Cookie
- å¤è¯è¨
- ä¸ä¼
- å½ä»¤è¡
- å¯å¨å ç½®æå¡å¨
- æ¥ççæ¬
- èªå¨çæåºç¨ç®å½
- å建类åºæ件
- æ¸ é¤ç¼åæ件
- çææ°æ®è¡¨å段ç¼å
- çæè·¯ç±æ å°ç¼å
- è¾åºè·¯ç±å®ä¹
- èªå®ä¹æ令
- æ©å±åº
- æ°æ®åºè¿ç§»å·¥å ·
- Workerman
- thinkå©æå·¥å ·åº
- éªè¯ç
- Swoole
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿