使用htaccess制作漂亮的URL?

时间:2015-11-26 21:54:30

标签: php .htaccess

我为一个学校项目制作了一个php mvc,我之前从未使用过htaccess,但我想让我的网址看起来很漂亮......

目前网址为posts/index,但我希望它们显示为Controller/Action /posts/index ..我还有一个名为“assets”的文件夹,其中包含我的css文件和图像。

这可以不破坏我的资产文件夹和网站吗?

谢谢:)

编辑:

我尝试了以下代码,但如果我转到/?controller=posts&action=index,则会显示主页&如果我转到RewriteEngine On RewriteRule ^([^/]*)/([^/]*)$ /?controller=$1&action=$2 [L] ,它不会更改名称或任何内容

 if let item = jsonResult as? NSDictionary {

        if let weather = item["weather"] as? NSArray{
            if let value = weather[0] as? NSDictionary{
                if let description = value["description"] as? String{
                    weatherRequested.append(description)
                }
            }
        }
        if let main = item["main"] as? NSDictionary {
            if let temp = main["temp"] {
                weatherRequested.append(temp.stringValue)
            }
        }
    }

1 个答案:

答案 0 :(得分: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" />