1

現在、 Anchor CMSを Apache サーバーにインストールしようとしています。

サーバーへのデプロイに成功しました。つまり、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>

そして、これは私のアンカー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 ファイルに一般的な書き直しを加えようとしましたが、実行されていないようです:

4

1 に答える 1

2

mod-rewriteがロードされていないようです。

サーバー構成ファイル ( httpd.conf) を参照してください。次のような記述があるはずです。

LoadModule rewrite_module modules/mod_rewrite.so

行が で始まる場合は、#その文字を削除し#ます。次のコマンドを使用することもできます。

a2enmod rewrite

また、 をブロックRewriteの外に移動してみてください。IfModule

Options -indexes

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]
于 2015-09-27T19:05:08.543 に答える