2012-07-28 17 views
19

私のmagentoはUbuntu Linuxの/ var/www/magentoにインストールされています。 この質問は、アーカイブ のいくつかの質問のようですが、実際には多少異なります。 Ubuntu LinuxにMagentoをインストールしたとき、Apacheのmod_rewrite URLの書き換えを有効にしました。ホームページ以外のMagento URLはindex.phpなしでは動作しません

私がhttp:// localhost/magento に行くと、私のサーバはURLをhttp:// localhost/magento/ と書き換え、そのページを表示します。次に、ナビゲーションバーのリンク の1つをクリックして、nav-bar項目 "foo"としましょう。

ます。http: はその後Magentoのは、私を取る// localhostの/ Magentoの "見つかりません" apacheのページを表示する/ foo.htmlという

私はURLへ----->

のhttpに変更する必要があります。ページを表示するために// localhostの/ Magentoの/ index.phpを/ foo.htmlという

を。

私のmod_rewriteの動作では、何かが間違っているようです。

おかげで、

ジョンGoche

構成:システム - >設定 - >(一般 - >)ウェブ:

使用するWebサーバー書き換え:YES

ベースURLます。http: // localhost/magento

"User Web Server Rewrites:"をNOに設定した場合、メインページのリンク は問題なく動作しますが正確なページを表示する http:// localhost/magento/index.php/foo.html を参照してください。一方、 のWebサイトは動作しますが、私はURLが気に入らないのです。私は は、http:// localhost/magento/foo.html のindex.phpビットなしにしたいと考えています。これはおそらく になります。

おかげで、

ジョンGoche


アップデート:私はUbuntuは/ etc/hostsに入れていた私の人工127.0.1.1のIPアドレス のコメントを解除しようとした私の本当のIP THER置きましたが、 運がありません。私はまだまったく同じ問題を抱えています。 内のURLは、 192.168.3.31、avalanche、avalanche.comと入力するとhttp:// localhost/etc ...に書き換えられます。 私はまだこれをしなかったので、上記の問題 を解決する方法を見つけようとしています。私は、Apacheを再起動すると

127.0.0.1  localhost 
#127.0.1.1  avalanche 

192.168.4.35 avalanche avalanche.com 

は私が取得:

# 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を再起動しましたが、運がない!

How to remove index.php from URLs?

ので、置く:

RewriteEngine On 
RewriteBase /mymagento/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

もでRewriteBase /と、動作しません、それは動作しません。


OK、最終的に私はprobkemを解決することができました。 ファイルは/ etc/apache2の/ 000-デフォルト/サイト対応 は、このファイル内で定義されたすべてのディレクトリに対して次のディレクティブが設定 があります。既定のドキュメントは/ var/WWWのために、例えば

AllowOverride None 

をUbuntuの12.04 LTSのLinuxシステム上のルート セットは、このファイルには、私の知る限り理解し にこのディレクトリとそのサブディレクトリのすべてを発見した.htaccessファイルを解析できないことを意味します

<Directory /var/www/> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride None 
      Order allow,deny 
      allow from all 
    </Directory> 

が含まれています。あなたが/etc/apache2/apache2.conf(または/etc/apache2/httpd.confで見つかったサーバーの設定ディレクティブ を上書きすることができます意味

AllowOverride All 

:設定するのに十分であるという問題を解決するには これには が含まれています)。

AllowOverrideがデフォルトで[なし]に設定されている理由の1つは、 の場合はサーバーの速度が低下し、もう1つはセキュリティ上の理由によることがあります。この ディレクティブはタグの中に設定し、後者のタグは最後のタグを無効にすることができます。これが ではない別の理由は、ディレクトリパスのファイルが であるたびに、サイト全体で.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の/ 000-デフォルト/サイト対応

を配置し、実行します。

が解決され、サービスのApache2を再起動します。

+0

/var/www/mymagento/.htaccessにあります(そして、http:// myip/mymagento/adminに行きます。これは、http:// myip/mymagento/index.php/adminが動作するのに対して、ファイルは見つかりません)。 – user1527429

+2

問題を解決できた場合は、質問に追加しないでください。代わりにそれを別の答えにしてください。あなたは許可され、そうするように奨励されます。 – Bart

答えて

17

あなたがしようとしました:

RewriteBase /magento/ 

ないでRewriteBase/mymagento /あなたのURLはhttpので:// localhostの/ Magentoの/

は、例えば、設定を上書きするようにApacheバーチャルホスト許可してい

<VirtualHost *:80> 
... 
<Directory /var/www/magento/> 
    AllowOverride All 
</Directory> 
</VirtualHost> 
+0

ありがとう、これは本当に役立って、確かに求められている解決策です。 – user1527429

+0

あなたは大歓迎です:) –

+0

@SylvainRayéはうまく動作します:-) – Butterfly

4

あなたのMagentoのルートでthe appropriate .htaccess fileを持っていますか?また、localhostに関する問題が発生する可能性があります。127.0.0.1を使用するか、hostsファイルのdevドメインをマップすることをお勧めします。

+0

こんにちは、 はい私はこのファイルを持っています。私はMagentoソースを解凍したときにインストールされています。しかし、私はまだ問題を抱えています。このファイルを調整する必要がありますか?おそらく私はRewriteRule。* index.php [L]か何かを変更する必要がありますか? – user1527429

+0

私は/ etc/hostsファイルを修正しようとしましたが、まだ問題があります。 – user1527429

2

([システム]> [コンフィギュレーションを通じてMagentoの管理パネルにアクセスします)Magentoの構成の中で、最終的に検索エンジンフレンドリーURLがどのように見えるかを決めるいくつかの関連する設定があります。

Web > Search Engine Optimization > Use Web Server Rewrites 

常にオンにする必要がある設定。不要なURLには "/index.php/"が追加されず、醜く見えます。 このオプションを有効にするには、ホスティング環境でApache mod_rewriteを有効にする必要があります。

Catalog > Search Engine Optimizations > Product URL Suffix 

ここでのデフォルト値は、各製品URLに追加される「.html」です。いくつかのSEO専門家は、これがより良い評価のために必要であると主張し、他のSEOの輸出はそうではないと言います。 Joomla!とのMageBridgeの統合のために!この設定は空である必要があります。

Catalog > Search Engine Optimizations > Category URL Suffix 

上記と同じですが、今のカテゴリです。

Catalog > Search Engine Optimizations > Use categories path for product URLs 

このオプションを有効にすると、製品URLにもカテゴリURLキーが含まれます。これによって重複したコンテンツが生成されると主張されるかもしれませんが、製品ページは大きな構造の一部になるため、この恩恵を受ける可能性もあります。

Catalog > Search Engine Optimizations > Use Canonical Link Meta Tag For Products 

あなたは(一部の人々はあなたを教えてくれるほど悪くはありません)重複するコンテンツについては本当に心配している場合は、一度コンテンツを複製リードされているページを検索エンジンに伝える正規のタグが検出された有効にすることができます。

Catalog > Search Engine Optimizations > Use Canonical Link Meta Tag For Categories 

カテゴリと同じですが、さらに問題にhttp://www.yireo.com/tutorials/magento/magento-administration/664-fixing-url-rewrites-with-magento

+0

この情報はありがとうございますが、私はまだ同じ問題を抱えています。 Web> Search Engine Optimization> Use Web Server RewritesはGl​​obalレベルでYesに設定されており、#a2enmod rewriteがあり、Module rewriteはすでに有効になっています。だから問題はどこにあるの?私は/index.php/をURLから取り除きたい! – user1527429

+1

mod_rewriteがなぜあなたのサーバー上で機能していないのかをトラブルシューティングするのに役立つように、Apache Webサーバーの管理について知っておく必要があるようです。 ** mod_rewriteが正しく設定されたら(キャッシュをフラッシュし、設定を変更して保存した後にURLを書き換えて再インデックスする)、** Use Web Server Rewrites **をオンにするだけで簡単です。あなたのマゼンタの根でhtaccessとサーバの設定には、 'RewriteEngine On'、' AllowOverride All'、 'Options + FollowSymLinks'、' RewriteBase'が適切なディレクトリに設定されていることを確認する必要があります。 Fiasco Labsのような –

+0

は、mod_rewriteが正しく構成されているかどうかを確認しなければならないと指摘しました.htaccess –

1

を読ん

はlocalhostに私のライブサイトを転送するとき、私は同じ問題を抱えていました。最後に私はそれを解決しました。

私にはWindows OSがあります。だから私は私のlocalhostのWAMPスタックを使用していました。私は、ローカルホストのすべてのURLとその内容を.htaccessファイルを変更してDBのcore_config_dataテーブルを変更することによって検索するのに多くの時間を費やしましたが、すべてが間違っていました。

最後に、Apacheサーバーでrewrite_moduleを有効にする手がかりを得ました。 1.有効にするにはトレイバーのWampアイコンをクリックします(WAMP-> Apache-> Apache modules-> rewrite_moduleを選択します)。 2. Wamp Serverを再起動します。 3.キャッシュをクリアする(オプション) - var/cacheフォルダ内のすべてのファイルを削除する

ルートフォルダに.htaccessファイルがあることを確認してください(localhost/magento/.htaccess)。あなたが持っていない場合は、結果を得ることはありません。

それはそれです。

私は現在、他のすべてのページとURLを自宅以外で取得でき、404エラーページも取得できないことを願っています。

1

mod_rewrite問題です。私はUbuntuを実行していて、ストアの移行のためにApacheとMagentoのセットアップ中に同じ問題がありました。 Webサーバ上のvar/wwwための書き換えを許可するよう

<VirtualHost ...> 
... 
<Directory /var/www> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

</VirtualHost> 

を含むように

変更/etc/apache2/sites-available/000-default.conf

apacheがmagentosからの書き換えルールを処理するようにするには

sudo /etc/init.d/apache2 force-reload 
//(not service apache2 restart) 

経由

sudo a2enmod rewrite 

とApacheを再起動を経由して書き換えモジュールを有効にするhtaccessファイル(複数可)、
は私のために全体の問題を解決しました。

http://wiki.ubuntuusers.de/Apache/mod_rewrite
http://wiki.ubuntuusers.de/Apacheを参照してください。正しい方法で設定する方法について詳しくは、

3

wampのためのApache rewriteモジュールを有効にしてくれました。私は、私が見つけることができると、彼らは絶対に違いはありません、私は管理パネルでのmod_rewriteを有効にしても、キャッシュをクリアし、Apacheを再起動して、コードを配置ソリューションのすべてを試した

enter image description here

+0

'.htaccess'から' database tweaks'へのほとんど全ての解決策を試しました。これは私のために働いた!ありがとう。 +1 – CodeRomeos

3
Go to admin url of your site. 
Suppose,http://example.com/index.php/admin/ 

Go to 'System' menu from navigation and click on 'Configuration'. 
Under the 'General' tab in the left, click on 'Web'. 
Open the 'Search Engines Optimization' section by clicking on it. 
Then set 'Use Web Server Rewrites' value to 'No' 
+0

この回答に追加できる書式や文脈はありますか? – theMayer

関連する問題