我有这样的链接 - http://example.com/index.php?q=about
,我想让它们看起来像这样 - http://example.com/about
目前我正在使用重写规则
VirtualHost {
* {
Pattern = .*
RewriteRules {
dirindex {
pattern = (.*)/$
to = index.php/$1
qsa = true
}
}
}
}
如果我访问http://example.com/about,我会收到404 File Not Found
我正在为Drupal这样做。清洁网址指南:https://drupal.org/getting-started/clean-urls
答案 0 :(得分:1)
可以使用VirtualHost解决此问题,但现在已弃用HHVM的服务器模块,建议您使用fastcgi over apache / nginx。我将为VirtualHost提供答案,但如果需要,可以使用nginx替代方案进行更新。
首先,确保您的SourceRoot正确无误:
Server {
Port = 9000
SourceRoot = /home/myuser/www
DefaultDocument = index.php
}
现在,对于规则,这应该可行:
VirtualHost {
* {
Pattern = .*
RewriteRules {
* {
pattern = (.*)$
to = index.php/$1
qsa = true
}
}
}
}
如果您希望查询完全按照您的意图运行,请将内部模式替换为:
* {
pattern = /(.*)
to = index.php?q=$1
qsa = true
}
我已经对这两者进行了测试,但效果很好。如果您仍然遇到问题,则问题可能出在您的设置上。确保启用Error and Access logging。