我目前正在尝试在我的 Apache 服务器上安装Anchor CMS 。
我已成功将其部署到服务器。也就是说,当我访问 www.domain.com 时,我会看到默认主题的首页和一个测试帖子 :)
但是,如果我尝试单击帖子或转到管理区域,则会收到错误消息,例如:
未找到:在此服务器上未找到请求的 URL /posts/hello-world。
但是,如果我使用直接链接跟随(在这种情况下)发布链接,例如:
www.domain.com/index.php/posts/hello-world
它工作得很好。因此,重写似乎是一个问题。
我在 Stackoverflow 上发现了另一个与我的完全一样的问题,位于此处
不幸的是,我做了同样的步骤,但没有任何效果。回顾一下,这就是我的 VirtualHost 的外观:
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /var/www/domain.com/public_html
<Directory /var/www/domain.com/public_html>
AllowOverride All
Require all granted
</Dictory>
</VirtualHost>
这就是我的 Anchor CMS config.app 文件的外观:
return array(
'url' => '/',
'index' => '',
...(rest of the data here)...
正如文档所述,在这种默认情况下使用空索引。
我的 .htaccess 目前看起来像这样:
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
它位于文档根“public_html”中
可悲的是,即使配置了这些东西,我仍然会收到“未找到”错误。我真的不知道从这里去哪里:(
编辑
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^ http://google.com [R,L]
RewriteBase /
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
我试图对 .htaccess 文件进行一般性重写,但它似乎没有被执行: