2017-01-19 7 views
0

私のMagentoのウェブサイトにhttp://magento.store/abouthttp://magento.store/index.php/aboutというようなURLがあります。私はこれらの2つのページは必要ありません、私はそれらを適切にrehritedにする必要があります.htaccessファイル。私はStackOverflowで見つけたものすべてを試しましたが、何も助けません。.htaccessを使用してMagento 1.9でindex.phpを削除する方法

RedirectMatch 301 ^/index.php/((?!admin).*) http://www.magento.store/$1 

:私は、adpanelを使用した構成でURL-書き換えを設定したさまざまなソリューションを使用しますが、ほとんどは、私が得たこれらのリダイレクトを行うことですが、私のadpanelは、ウェブサイトのデータベースに変更を書き込みしません(私は、このソリューションを使用しましたこの場合、adpanelで何かを変更することは不可能である。このよう

RewriteEngine on 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

も動作しません。彼らは私の知る限り理解として無視されている。 を、私はこの問題を解決できる方法は?

通常どおりソリューションここは私の.htacceですssファイル(mod_rewriteについての部分):

<IfModule mod_rewrite.c> 

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
RewriteCond %{HTTP_HOST} ^magento\.store$ [NC] 
RewriteRule ^(.*)$ http://www.magento.store/$1 [L,R=301] 
# redirect pagination 
RewriteCond %{QUERY_STRING} ^p=1$ 
RewriteRule ^(.+)$ http://www.magento.store/$1? [R=301,L] 
RewriteRule ^pagename$ http://www.magento.store/page-name [L,R=301] 

#RewriteCond %{REQUEST_URI} !/admin/ 
#RewriteRule ^index\.php/(.+)$ /$1 [R,L] 
#RewriteRule ^index\.php/?$/[R,L] 
#RedirectMatch 301 ^/index.php/(.*)$ /$1 
#RedirectMatch 301 ^/index.php/((?!admin).*) http://magento.store/$1 

RewriteRule ^api/rest api.php?type=rest [QSA,L] 
############################################ 
## workaround for HTTP authorization 
## in CGI environment 

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

############################################ 
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks 

RewriteCond %{REQUEST_METHOD} ^TRAC[EK] 
RewriteRule .* - [L,R=405] 

############################################ 
## always send 404 on missing files in these folders 

RewriteCond %{REQUEST_URI} !^/(media|skin|js)/ 

############################################ 
## never rewrite for existing files, directories and links 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

############################################ 
## rewrite everything else to index.php 

RewriteRule .* index.php [L] 

</IfModule> 

私のファイルにはいくつかの競合がありますか?

+0

magentoのデフォルトのhtaccessで試してください。 – urfusion

+0

@urfusion悲しいことに、私はこれを行うことができません。これらの設定は、実稼働サーバー上で既に使用されており、以前の開発者によって書き込まれているからです。私はデフォルトを使用することはできません。 – Varg

答えて

0

あなたの助けのために、皆様、ありがとうございました。最後に、私は解決策を作りました。それは次のとおりです。

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_URI} !/adpanel/ 
RewriteRule ^index\.php/(.*)$ http://magento.store/$1 [L,R=301] 
1

あなたはindex.phpの後の部分をキャプチャし、

RewriteEngine on 
RewriteRule ^index\.php/(.+)$ /$1 [R,L] 
RewriteRule ^index\.php/?$/[R,L] 

をクライアントにリダイレクトこれはindex.phpをせずにURLに/ index.phpので始まるすべての要求をリダイレクトすることができます。さらに、index.phpとindex.php /はホームページにリダイレクトされます。 .htaccessのルール以下

+0

このアプローチはhttp://magento.store/index.php/page/からhttp://magento.store/にリダイレクトされ、突然マークアップがクラッシュしました。また、http://magento.store/page/からhttp://magento.store/にリダイレクトされます。私のために働いていません。ファイルのどの部分がこれらの行と衝突する可能性がありますか? – Varg

1

用途:

## index.php on default domain 
RewriteCond %{THE_REQUEST} ^.*/index.php 
RewriteCond %{REQUEST_URI} !^/downloader.*$ 
RewriteRule ^(.*)index.php$ http://www.idesignmydrapes.com [R=301,L] 
RewriteCond %{HTTP_HOST} ^idesignmydrapes\.com$ [NC] 
関連する問題