web-dev-qa-db-ja.com

ホームページ以外のMagento URLはindex.phpなしでは機能しません

私のmagentoはUbuntu Linuxの/ var/www/magentoの下にインストールされます。この質問は、アーカイブ内の質問の一部のように見えますが、実際には多少異なります。 Ubuntu LinuxにMagentoをインストールしたときに、Apache mod_rewrite URL書き換えを有効にしました。

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

「User Web Server Rewrites:」をNOに設定すると、メインページのリンクは正常に機能しますが、正しいページを表示するページhttp:// localhost/magento/index.php/foo.htmlが表示されますが、 Webサイトは機能しますが、URLは好きではありません。 index.phpビットなしのhttp:// localhost/magento/foo.htmlにしたいと思います。これはおそらくSEOにより適しているためです。

ありがとう、

ジョン・ゴッシュ


更新:ubuntuが/ etc/hostsに入れた人工の127.0.1.1 IPアドレスのコメントを外し、実際のIPを配置しようとしましたが、うまくいきませんでした。私はまだまったく同じ問題を抱えています。そして、ブラウザ内のURLは、192.168.3.31、avalanche、またはavalanche.comと入力するたびに、http:// localhost /などに書き換えられます。私はまだ上記の問題を解決する方法を見つけようとしましたが、これはそれをしませんでした。

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を再起動しましたが、運がありません!

RLからindex.phpを削除する方法?

配置:

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.04 LTS Linuxシステムで設定されるデフォルトのドキュメントルートである/ 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つは、サーバーの速度低下とセキュリティ上の理由です。このディレクティブはタグ内に設定する必要があり、後者は前者をオーバーライドできます。これがデフォルトで設定されていない別の理由は、ディレクトリパスのファイルがロードされるたびにサイト全体で.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

解決策です。

19
user1527429

試しましたか:

RewriteBase /magento/

uRLはhttp:// localhost/magento /であるため、RewriteBase/mymagento /ではありません

Apache仮想ホストで設定を上書きできますか?.

<VirtualHost *:80>
...
<Directory /var/www/magento/>
    AllowOverride All
</Directory>
</VirtualHost>
19
Sylvain Rayé

Magentoルートに 適切な.htaccessファイル がありますか?また、localhostで問題が発生する場合があります。 127.0.0.1を使用するか、hostsファイルでdevドメインをマップすることをお勧めします。

4
benmarks

WampのApache書き換えモジュールを有効にするとうまくいきました。

enter image description here

3
Mukesh

Magentoの設定(Magento管理パネルの[システム]> [設定]からアクセス)には、最終的な検索エンジンフレンドリーURLの外観を決定する関連設定がいくつかあります。

Web > Search Engine Optimization > Use Web Server Rewrites

常にオンにする必要がある設定。そうでない場合、「/ index.php /」がURLに追加されますが、これは不要で見苦しくなります。 このオプションを有効にするには、ホスティング環境でApache mod_rewriteを有効にする必要があります

Catalog > Search Engine Optimizations > Product URL Suffix

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

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

3
Anton S
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'
3
DPrithweema

mod_rewriteの問題です。私はUbuntuを実行していますが、ストアの移行のためのApacheとmagentoのセットアップ中に同じ問題が発生しました。

含む/etc/Apache2/sites-available/000-default.confを変更

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

</VirtualHost>

したがって、Webサーバー上のvar/wwwの-​​書き換えを許可になります。

Apacheがmagentos .htaccessファイルから書き換えルールを処理するようにするには、
有効化書き換えモジュール

Sudo a2enmod rewrite

およびApacheの再起動経由

Sudo /etc/init.d/Apache2 force-reload 
//(not service Apache2 restart)

問題全体を解決してくれました。

http://wiki.ubuntuusers.de/Apache/mod_rewrite および
http://wiki.ubuntuusers.de/Apache 正しい設定方法の詳細な説明。

1
Lemonade

ライブサイトをlocalhostに転送するときに同じ問題が発生しました。最後に解決しました。

Windows OSを使用しています。そのため、ローカルホストにWAMPスタックを使用しました。 .htaccessファイルを変更し、DBのcore_config_dataテーブルを変更して、localhostのすべてのURLとそのコンテンツを取得するのに多くの時間を費やしましたが、すべてがうまくいきませんでした。

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

ルートフォルダーに.htaccessファイルがあることを確認して、assume(localhost/magento/.htaccess)を許可します。持っていない場合、結果は得られません。

それでおしまい。

ホーム以外のすべてのページとURLを取得でき、404エラーページが表示されないようになりました。

1
user2560431