我为一个学校项目制作了一个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)
}
}
}
答案 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" />