2016-12-01 8 views
0

私のウェブページのすべてのリンクに対してRewriteRuleを作成しようとしていますが、動作させることができません。私は自分のウェブページ上で私が押すすべてのリンクが次のようになることを望みます:.htaccessを使ってIPを隠すには?

domain.es 
domain.es/section1 
domain.es/section2 
domain.es/section3/subsection1 

など。

ブラウザで直接domain.esに行くと問題なく動作しますが(インデックスも表示されないようにリダイレクトするルールがあります)、私のウェブページのリンクを押すと次のように表示されます: 1.1.1.1/section1は、ドメインの代わりにIPでURLを示しています。

また、ブラウザで直接domain.es/section1に行くと問題はなく、URLにIPが表示されます。 IPの代わりにドメインを使用して、URLが正しく表示されています。

IndexIgnore * 

Options +FollowSymlinks 
Options -Indexes 

RewriteEngine On 

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule .* index.php [F] 

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
RewriteCond %{REQUEST_URI} !^/index\.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php [L] 


RewriteCond %{HTTP_HOST} ^1\.1\.1\.1:8082/proyect 
RewriteRule (.*) http://domain.es/$1 [R=301,L] 

それが問題になることがあれば、私は知らないが、私はJoomlaを使用しています:ここで

は、私は一瞬で持って.htaccessファイルです。また、1.1.1.1の代わりに偽のIPであることに気付きました。自分のプロジェクトに私の実際のIPを持っています。

URLをブラウザで直接使用するとIPが表示されず、ウェブページのリンクを押すとIPが表示されるのはなぜですか?リンクを押したときに検出する特別なルールはありますか?

ありがとうございます!

+2

これはあなたの書き換えに関連していない可能性がありますまったく。私はむしろJoomlaがこれらの絶対URLを出力することを疑うでしょう - それらのリンクのHTMLコードが実際に何を含んでいるかチェックしましたか? – CBroe

+0

@CBroeどうすれば確認できますか?それともリンクのhrefを調べるべきですか? –

+0

ブラウザのページソースコードを表示するか、DOMインスペクタを使用してください – CBroe

答えて

0

CBroeは、表示されているmod_rewriteルールに関連しないいくつかのコード/設定の問題によるものです。

HTTP_HOSTは、スキームのみ、ポートせずにホスト名と一致するため、ホスト名にIPをリダイレクトするためにあなたの最後のルールが間違っているしかし、URIなどを使用でき

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^1\.1\.1\.1$ 
RewriteCond %{SERVER_PORT} =8082 
RewriteRule ^proyect(/.*)?$ http://domain.es%{REQUEST_URI} [R=301,L,NC,NE] 

# remaining Joomla rules 

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule^index.php [F] 

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

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule !^index\.php$ index.php [L,NC] 
+0

それは動作していないようです。私はリンクが次のようなものなので、Joomlaに関連すると思う: ' Section1

+0

このルールは、他のルール。 Aisi Webサーバーが受け取っているURLは何ですか? – anubhava

関連する問題