1

私は最近、prestashop を使用してショップを構築しました。prestashop のプロダクション インストールは、/prestashop というサーバー上のサブディレクトリにあります。私がやりたいことは、Web サイトを表示するためにhttp://mydomain.com/prestashopに行く必要がなく、http://mydomain.com だけにアクセスできるようにすることです

これまでに考えた方法は 2 つあります。ワードプレスで行われているのと同様に、インデックス ファイル内の prestashop のフロント コントローラーをルートに移動できますが、これが実行可能なオプションであるかどうかはわかりません。それをいじるのに十分な経験がありません。興味のあるすべての人のための index.php のコードは次のとおりです。

require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();

2 番目のオプションは、Apache の mod_rewrite モジュールを使用することです。

RewriteEngine on
RewriteRule ^/(.*)$   /prestashop/$1

しかし、すでにそこにあるhtaccessファイルを開き、このコードがそこにあるので、これを編集できるかどうかわかりません:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mydomain.com$
RewriteRule . - [E=REWRITEBASE:/prestashop/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

私は遊んで、自分でそれを理解しようとし続けますが、皆さんからの助けは非常に高く評価されます. 前もって感謝します。

4

2 に答える 2

1

Prestashopがパスを正しく把握できるかどうかはわかりませんが、index.phpファイルを次のように変更してみてください。

require(dirname(__FILE__).'/prestashop/config/config.inc.php');
Dispatcher::getInstance()->dispatch();

リクエストごとにより多くの書き換えを行うことで発生するオーバーヘッドが増えるため、可能であれば.htaccessを使用しないようにします。

基本的に、これはすべて、フロントコントローラーコードを変更して、構成の正しいディレクトリ(/ prestashop)を検索することです。それは問題ではないはずです。

編集:URLの書き換えが引き続き機能するように、.htaccessファイルを/prestashop/.htaccessから/.htaccessに移動する必要もあります。

于 2012-11-27T22:54:52.253 に答える
1

http://www.prestashop.com/forums/topic/18393-solved-move-prestashop-from-subfolder-to-root/でマイケルドからの指示/ヒントに従う

効果があることがわかりました!

また、PrestaShop メディア サーバーを使用している場合は、リライトも追加してください。

私のために働く完全な .htaccess は次のとおりです。

# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.

# Do not change this line - RewriteEngine on
RewriteEngine on

# Change yourdomain.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$

# Change 'subfolder' to be the folder you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subfolder/

# Don't change this line.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Change 'subfolder' to be the folder you will use for your main domain.
RewriteRule ^(.*)$ /subfolder/$1

# Change yourdomain.com to be your main domain again.
# Change 'subfolder' to be the folder you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]


# For PrestaShop Media server #1 
# Change mediaserver1.yourdomain.com to be your media server subdomain
# Change 'subfolder' to be the folder you will use for your main domain.
RewriteCond %{HTTP_HOST} ^mediaserver1.yourdomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/.*$
RewriteRule ^(.*)$ /subfolder/$1

# For PrestaShop Media server #2
# Change mediaserver2.yourdomain.com to be your media server subdomain
# Change 'subfolder' to be the folder you will use for your main domain.
RewriteCond %{HTTP_HOST} ^mediaserver2.yourdomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/.*$
RewriteRule ^(.*)$ /subfolder/$1


# For PrestaShop Media server #3
# Change mediaserver3.yourdomain.com to be your media server subdomain
# Change 'subfolder' to be the folder you will use for your main domain.
RewriteCond %{HTTP_HOST} ^mediaserver3.yourdomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/.*$
RewriteRule ^(.*)$ /subfolder/$1

PS: PrestaShop BO の物理 URL を「/」に設定していることを確認してください。

于 2012-11-30T04:40:31.353 に答える