私の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を再起動しましたが、運がありません!
配置:
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
解決策です。
試しましたか:
RewriteBase /magento/
uRLはhttp:// localhost/magento /であるため、RewriteBase/mymagento /ではありません
Apache仮想ホストで設定を上書きできますか?.
<VirtualHost *:80>
...
<Directory /var/www/magento/>
AllowOverride All
</Directory>
</VirtualHost>
Magentoルートに 適切な.htaccessファイル がありますか?また、localhost
で問題が発生する場合があります。 127.0.0.1を使用するか、hostsファイルでdevドメインをマップすることをお勧めします。
WampのApache書き換えモジュールを有効にするとうまくいきました。
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
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'
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 正しい設定方法の詳細な説明。
ライブサイトを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エラーページが表示されないようになりました。