2015-11-26 106 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" />