我想有乾淨的網址,這裏是我的代碼:乾淨的URL與htaccess的
Options -Multiviews -Indexes +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteEngine ON
RewriteRule ^([0-9a-z\-\_]+)?$ profile.php?q=$1 [QSA,L,NC]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 /page/error?q=aqw
唯一的問題是,我不能把一個目錄,我必須指定文件名,爲例:
<a href="site.com/help">Help</a> //this is not working
<a href="site.com/help/index"></a> //This is working
那麼,怎樣才能解決我認爲,由於
如果你只是追加'.php'到'/ help',那麼當然這隻會找一個叫做'help.php'文件 - 如果那不存在,當然它失敗了。這取決於你指定這樣的請求應該被重寫的位置。如果你只是想讓它顯示該目錄的索引文件 - 那麼首先不要重寫目錄。 – CBroe
你的意思是,我需要指定文件名?沒有解決方案? – mafitsi
取決於你想要的東西。如果你可以使用'/ help /',那麼不要重寫目錄,並且讓'DirectoryIndex'指令生效。如果你堅持只使用'/ help'(而不是通過你的服務器自動重寫'/ help /'),那麼對現有目錄做一個不同的規則,並且明確地在內部重寫到索引文件。 (請注意,使用URL內沒有尾部斜槓的現有目錄可能會弄亂您在文檔中使用的相對路徑。) – CBroe