1.關於newform.php位:
表1.A DirectoryIndex
DirectoryIndex newform.php index.php index.html
優點:
- 的URI實際上保持 「/」,而不是 「/newform.php」。
缺點:
- 或許你希望用戶看到「/newform.php」
- 謹防其子文件夾中的任何地方newform.php - DirectoryIndex的設置是繼承的,你可能最終得到意想不到的結果(雖然這是相當遙遠的情況)。
1.b. RedirectMatch
RedirectMatch ^/$ /newform.php
優點:
- 精密 - 只有這個特定URI被重定向(子文件夾不會受到影響)。
缺點:
1.C.想到的RewriteRule
RewriteRule ^/$ /newform.php [R,L]
優點:使用mod_rewrite讓我一個三明治
缺點:
- 調用mod_rewrite的是不是一個很輕的操作,雖然無關,如果你要使用mod_rewrite的其他規則...
2.休息。 ..
2.1。使用mod_rewrite
RewriteEngine On
RewriteRule ^pending/([0-9]+)$ pending/index.php?id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z_]+)/?([a-zA-Z_+]+)?/?([0-9]+)?/? $1.php?action=$2&id=$3 [L,QSA]
基本上,我改變規則順序,因爲你的「第一次」是一個懸而未決的匹配/ [0-9] + $以及從不超過該點達到控制。
2.2。利用MultiViews
雖然這不會是一個純粹的僅配置解決方案(需要在PHP文件的一些變化),這可以讓你避免使用mod_rewrite ...
所以,爲了做到這一點,您需要啓用MultiViews
選項:
Options +MultiViews
然後你只需建立一個「漂亮」的網址,如「/條/ 123 /編輯」,如果有一個名爲article.php文件,它會被調用,雖然你沒有提到.php擴展名 然後,article.php文件可以抓住$_SERVER["REQUEST_URI"]
並解析它認爲合適的方式...
至於掛起/ * - 它可以使用ErrorDocument
未決文件夾中的這個場景
ErrorDocument 404 index.php
然後還要檢查$_SERVER["REQUEST_URI"]
所以,你有它......既沒有mod_rewrite的;)的決定是你的;)
PS在上一個'RewriteCond'行中,** - p **是什麼?它不存在於[mod_rewrite手冊](http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond) – poncha 2012-03-27 23:04:18
謝謝,這有助於很多! -p是一個錯誤,所以很抱歉。 – 2012-03-28 16:06:43