2015-11-26 193 views
1

我做了一個學校項目一個PHP MVC,和我以前從未使用htaccess,但我想讓我的網址看起來很漂亮......用htaccess製作漂亮的URL?

眼下的URL是/?controller=posts&action=index,但我想有他們演出作爲posts/index這是Controller/Action ..我也有一個名爲「資產」的文件夾與我的CSS文件和圖像。

這樣做可以做到不破壞我的資產文件夾和網站?

謝謝:)

編輯:

我試着下面的代碼,但如果我去/posts/index它顯示的網頁&如果我去/?controller=posts&action=index它不更改名稱或任何

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)$ /?controller=$1&action=$2 [L] 

回答

1

您需要2條規則來完成整個需求並使用條件來忽略真實的文件和目錄。

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteCond %{THE_REQUEST} ^GET\ /\?controller=([^\s&]+)&action=([^\s&]+) 
RewriteRule^/%1/%2? [R=302,L] 

RewriteRule ^([^/]+)/([^/]+)/?$ /?controller=$1&action=$2 [L,QSA] 

這也將最有可能的原因CSS不加載,所以你還需要這在HTML的head部分。

<base href="http://www.yoursite.com" />