1

cgi-bin フォルダーにいくつかのファイルがあり、html フォルダーに他のファイルがあります。

/cgi-bin/index.cgi にアクセスすると、通常のインデックス ページが表示されます。ただし、「domain.com」などの自分のドメインだけにアクセスすると、Apache ページが表示されます。そこには index.html ページがなく、私の html フォルダーには index.html ページがないと言っている可能性があります。ただし、html フォルダー内の .htaccess ファイルは、リンクを適切にリダイレクトすると想定されています。ただし、これらのリンクはリダイレクトされません。

これが私が持っている.htaccessファイルです

deny from 127.1.1.4
deny from 127.1.1.1

AddDefaultCharset utf-8
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1]

RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule    ^([0-9A-Za-z]{12})(\/?.+|$)$        ?op=download1&id=$1&fname=$2 [L]
RewriteRule    ^([0-9A-Za-z]{12})(\/.+|\.html?|$)   ?op=download1&id=$1&fname=$2 [L]

RewriteRule    ^embed-([0-9A-Za-z]{12})\.html$      ?op=video_embed&file_code=$1 [L]
RewriteRule    ^embedmp3-([0-9A-Za-z]{12})\.html$   ?op=mp3_embed&file_code=$1 [L]
RewriteRule    ^box$                    /cgi-bin/index_box.cgi [L]

RewriteRule    ^$                   /cgi-bin/index.cgi [L]
RewriteRule    ^free([0-9]+)\.html$         /cgi-bin/index.cgi?op=registration&aff_id=$1 [L]
RewriteRule    ^checkfiles\.html$           /cgi-bin/index.cgi?op=checkfiles [L]
RewriteRule    ^contact\.html$              /cgi-bin/index.cgi?op=contact [L]
RewriteRule    ^premium\.html$              /cgi-bin/index.cgi?op=payments [L]
RewriteRule    ^login\.html$                ?op=login [L]
RewriteRule    ^catalogue(.*)\.html$            /cgi-bin/index.cgi?op=catalogue&date=$1 [L]
RewriteRule    ^news([0-9]*)\.html$         ?op=news&page=$1 [L]
RewriteRule    ^n([0-9]+)-.*\.html$         /cgi-bin/index.cgi?op=news_details&news_id=$1 [L]
RewriteRule    ^faq\.html$              /cgi-bin/index.cgi?op=page&tmpl=faq [L]
RewriteRule    ^tos\.html$              /cgi-bin/index.cgi?op=page&tmpl=tos [L]
RewriteRule    ^links\.html$                /cgi-bin/index.cgi?op=links [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^pages/([a-z0-9\-\_]+).html      /cgi-bin/index.cgi?op=page&tmpl=$1$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule    ^users/([0-9A-Za-z\-_]{4,64})/?([0-9]+|$)    /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld_id=$2 [L,NC]

RewriteRule    \.pm$                    /404.html [L]

ErrorDocument 404 /404.html

たとえば、このリンク: domain.com/?op=registration は適切なページにリダイレクトされません。

このリンクと同じ: domain.com/login.html

正直に言うと、他のすべてのリンク。上記の .htaccess ファイルが原因であると 99% 確信していますが、インデックス リダイレクトの問題を特定できないようです。

4

1 に答える 1

1

書き換えルールに / がありません。例:

RewriteRule    ^/premium\.html$              /cgi-bin/index.cgi?op=payments [L]

更新: ホームページのリダイレクトにも / が必要です。

持っているものをすべて廃棄することから始めて、単純なバージョンを機能させます。

deny from 127.1.1.4
deny from 127.1.1.1

AddDefaultCharset utf-8
RewriteEngine on
Options +FollowSymLinks
RewriteRule    ^$                    /cgi-bin/index.cgi [L]

それが機能すると仮定して、何がそれを壊しているのかがわかるまで、条件とその他のルールを 1 つずつ追加します。

于 2013-05-30T00:24:12.137 に答える