プリティーURLをONにしたところトップページ以外がnot foundとなる。

2016年9月13日 at 17:58

concrete5.7.5.2を使用
URL途中の「index.php」を省くためプリティーURLをONにしたところトップページ以外にアクセスすると
not foundとなってしまいました。ログインページから管理画面にアクセスしようとしてもnot foundとなってしまい元に戻すことが出来なくなっています。
どうしたら良いでしょうか。

タグ:

Re: プリティーURLをONにしたところトップページ以外がnot foundとなる。

2016年9月13日 at 19:06
こちらの症状と似ています
http://concrete5-japan.org/community/forums/development/post-13929/

原因は、

サーバー環境の .htaccess ファイルが作成されておらず
mod_rewrite が動いていないため、404 になっている



Apache から nginx 、もしくは .htaccess が効かないサーバーに移動したので、mod_rewrite な設定を有効にするか、別の場所で設定する必要がある。

の2つのどちらかが原因ではないかと思います。

最初の原因だと簡単に解決します。
.htaccess ファイルがサーバー上に作成されているか確認ください。
作成されていなければプリティー管理画面の管理画面にしたがって、.htaccess というファイル名のテキストファイルを作成してサーバーにアップしてください。

.htaccess が作成されているのに有効になっていない場合は、後者が原因となり、
サーバーの設定を変更する必要があります。

Apache であれば、
・mod_rewrite が有効か
・.htaccess が使えるか (mod_rewrite の設定もできるか)
を確認してください。

nginx などであれば、
・.htaccess の設定を参考に、nginx の設定を作成してください。
参考:http://a-lab.biz/588
 

Re: プリティーURLをONにしたところトップページ以外がnot foundとなる。

2016年9月15日 at 9:41
Uenoさん
ご返信有難うございます。

Apache利用のため、ご案内頂いた通り、
httpd.confでmod_rewriteが有効になっていることを確認し、
.htaccessを以下の記述で設置してみたのですが、状況は変わりませんでした。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /concrete5/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>

.htaccessの記述の仕方が違っているのか、他に問題があるのか、別の場所も変更(例えばindex.php等)する必要があるのか、悩んでいます。
 

Re: プリティーURLをONにしたところトップページ以外がnot foundとなる。

2016年9月15日 at 15:31
その後、.htaccessの記述に問題があると思い調べていたところ
以下の方法で一応解決しました。

・「.htaccess」の記述内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /concrete5/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

これでTOP以外のページ及び管理画面へのアクセスが可能となりました。
 

Re: プリティーURLをONにしたところトップページ以外がnot foundとなる。

2016年9月15日 at 15:40
お世話になります。

何か、サーバーの設定などで、一部の正規表現が違うようですね。
とにかく、動いて良かったです。