0

私の作業中の Conrete5 サイトでは、最近、すべての管理ページで「入力ファイルが指定されていません」という問題が発生しました。問題の根本原因は、管理ページの URL に不要な /index.php が含まれていることです。IE

www.example.com/index.php/login/do_login......

/index.php の部分が URL から削除されると、ページが読み込まれます (ただし、すべての参照ファイルにはまだ /index.php が含まれているため、読み込みに失敗します)。

サブディレクトリでコンクリートを実行していますが、ページのURLはルートからのものです。

www.example.com/concrete-page-title...

これは、ルート ディレクトリにある .htaccess ファイルで、具体的なリクエストを具体的なサブディレクトリに中継します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(\.|/$)
RewriteRule (.*) http://www.example.co.uk/$1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^example.co.uk$
RewriteRule ^/?(.*)$ http://www.example.co.uk/$1 [R=301,L]
# redirect concrete
RewriteCond %{REQUEST_URI} !^/concrete
# permit normal access to wordpress installation
RewriteCond %{REQUEST_URI} !^/news
RewriteRule ^(.*)$ concrete/$1 [L]
</IfModule>

私はプリティ URL をオンにしています。これが私の具体的なサブディレクトリ (/concrete) の .htaccess ファイルです。

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

補足: cgi.fix_pathinfo=1(0 に変更、変更なし)

また、このサイトは GoDaddy でホストされていません。


サイトはかなりの間更新されていませんでしたが、私のいじりにもかかわらず、私は成功していないので、どんな提案も大歓迎です.

4

1 に答える 1

0

サーバーの PHP がアップグレードされたサイトで機能したもの:

config/site.php に次を追加します。

define('SERVER_PATH_VARIABLE', 'REQUEST_URI');
define('DIR_REL', '');
于 2013-08-22T19:32:28.210 に答える