所以我在Digital Ocean上运行了一台服务器。我正在尝试运行Anchor CMS。这就是URL应该是http://colourity.com/posts/hello-world
的样子。但这似乎不起作用。当我尝试http://colourity.com/index.php/posts/hello-world
时,一切正常。但问题在于我正在使用.htaccess
来纠正这个问题,这就是我所拥有的,
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
应该摆脱index.php
,另外mod_rewrite
已启用。我也重新启动了服务器,看看是否有所作为,但事实并非如此。有任何想法吗?
答案 0 :(得分:1)
AllowOverride All
必须包含在Apache配置中,以便.htaccess
规则可以覆盖您的配置。来自文档:
当服务器找到.htaccess文件(由AccessFileName指定)时,它需要知道该文件中声明的哪些指令可以覆盖之前的配置指令。
当此指令设置为None时,则完全忽略.htaccess文件。在这种情况下,服务器甚至不会尝试读取文件系统中的.htaccess文件。
当此指令设置为All时,.htaccess文件中允许任何具有.htaccess Context的指令。
默认值为All
,但某些模板配置文件可能会将其手动设置为None
。另请注意,此语法仅适用于<Directory />
部分。