2016-10-17 7 views
2

ルートディレクトリはindex.phpファイルと.htaccess設定ファイルです。 301を作成するにはどのように/(メインページ)にURLをリダイレクトしますが、http://mysite.loc/1、http://mysite.loc/2とhttp://mysite.loc/?例えばすべてのページを2ページを除いてリダイレクト

http: //mysite.loc/ (URL available, show index.php) 
http: //mysite.loc/1 (URL available, show index.php) 
http: //mysite.loc/2 (URL available, show index.php) 
http: //mysite.loc/testing (301 redirect on /) 
http: //mysite.loc/qwerty (301 redirect on /) 

問題は、メインページにリダイレクト無限にあります。

注:ルールを設定ファイル.htaccessでのみ作成する必要があります.PHPスクリプトは使用できません。

使用可能なすべてのURLは次のように

答えて

0

あなたはあなたの非常に最初のルールとしてこのルールを使用することができます。

RewriteEngine On 

# remove index.php 
RewriteCond %{THE_REQUEST} /index\.php [NC] 
RewriteRule ^(.*/)?index\.php$ /$1 [L,R=301,NE] 

RewriteRule !^(1|2|index\.php)?/?$/[L,R=301] 

RewriteRule ^(1|2)?/?$ index.php [L] 

この変更をテストする前にブラウザのキャッシュをクリアしてください。

+0

これは動作しますが、mysite.loc/sendにindex.phpの内容を表示する必要があります –

+0

すみません、mysite.loc/1またはmysite.loc/2 show index.php –

+0

3つのアドレス1)mysite.looss 2 )mysite.loс/ 1 3)mysite.loс/ 2はファイルとindex.phpのコンテンツをデモする必要があります。 /にリダイレクトします。 –

0

何かが動作するはずです(index.phpのファイル)/につながる:

RewriteEngine On 
RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteCond %{REQUEST_URI} !/(1|2) [NC] 
RewriteRule ^(.*)$/[L,R=301] 
+0

サーバーは、このアドレスに要求を転送して、決して終了しないようにします。私は同じエラーがあります:) –

+0

ほとんどの場合、RewriteCond%{ENV:REDIRECT_STATUS}^$が必要です。しかし、私はそれを適用する方法を理解していない限り限り。 –

関連する問題