私のmagentoはUbuntuLinuxの/var/ www/magentoにインストールされています。この質問は、アーカイブ内のいくつかの質問のように見えますが、実際には多少異なります。Ubuntu LinuxにMagentoをインストールしたときに、Apachemod_rewriteURLの書き換えを有効にしました。
http:// localhost / magentoにアクセスすると、サーバーはURLをhttp:// localhost / magento /に書き換えて、ページを表示します。次に、ナビゲーションバーのリンクの1つをクリックします。たとえば、ナビゲーションバーの項目「foo」をクリックします。次に、magentoは私を次の場所に連れて行きます:
http:// localhost / magento / foo.html
「見つかりません」のapacheページが表示されます。
URLを----->に変更する必要があります
http:// localhost / magento / index.php / foo.html
ページを表示するため。
mod_rewriteの動作に何か問題があるようです。
ありがとう、
ジョン・ゴッシュ
構成:システム->構成->(一般->)Web:
Webサーバーの書き換えを使用する:はい
ベースURL:http:// localhost / magento
「UserWebServerRewrites:」をNOに設定すると、メインページからのリンクは正常に機能しますが、正しいページを表示するhttp:// localhost / magento / index.php/foo.htmlページを参照してください。ウェブサイトは機能します私はURLが好きではありません。index.phpビットなしでhttp:// localhost / magento / foo.htmlにしたいのですが、これもおそらくSEOに適しているからです。
ありがとう、
ジョン・ゴッシュ
更新:ubuntuが/ etc /hostsに配置した人工の127.0.1.1IPアドレスのコメントを解除し、実際のIPを配置しようとしましたが、うまくいきませんでした。私はまだまったく同じ問題を抱えています。また、ブラウザ内のURLは、192.168.3.31、avalanche、またはavalanche.comと入力するたびに、http:// localhost /etc...に書き換えられます。私はまだ上記の問題を解決する方法を見つけようとしていますが、これでは解決しませんでした。
127.0.0.1 localhost
#127.0.1.1 avalanche
192.168.4.35 avalanche avalanche.com
Apacheを再起動すると、次のようになります。
# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.4.35 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.4.35 for ServerName
元の問題を修正する方法がわからない。ローカルサーバーでテストしています。
このソリューションを試した後、apache2を再起動しましたが、うまくいきませんでした。
だから配置:
RewriteEngine On
RewriteBase /mymagento/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteBase /を使用しても機能しませんが、機能しません。
OK、ついに私は問題を解決することができました。ファイル/etc/ apache2 / sites-enabled / 000-defaultには、このファイル内で定義されているすべてのディレクトリに次のディレクティブが設定されています。
AllowOverride None
たとえば、Ubuntu 12.04LTSLinuxシステムで設定されたデフォルトのドキュメントルートである/var/ wwwの場合、このファイルには次のものが含まれます。
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
私が理解している限り、これは、このディレクトリとそのすべてのサブディレクトリで見つかった.htaccessファイルが解析されないことを意味します。問題を修正するには、以下を設定するだけで十分です。
AllowOverride All
つまり、/ etc / apache2 / apache2.conf(またはそこに含まれている/etc/apache2/httpd.conf)にあるサーバー構成ディレクティブをオーバーライドできます。
AllowOverrideがデフォルトでNoneに設定されている理由の1つは、サーバーの速度を低下させることであり、もう1つはセキュリティ上の理由です。このディレクティブはタグ内に設定する必要があり、後者は前者をオーバーライドできます。これがデフォルトで設定されていないもう1つの理由は、ディレクトリパス内のファイルが読み込まれるたびにサイト全体で.htaccessを再帰的に解析する必要があるため、システムの速度が低下し、.htaccessのものが/etc/apache2/httpd.confに配置される可能性があるためです。速度が上がる可能性があるため、可能な場合は推奨されます。
だから場所
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
#AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>
/ etc / apache2 / sites-enabled/000-default内
実行:service apache2 restart
解決策です。