3

私は友人のウェブサイトを手伝っていましたが、いくつかの php ページを作成し、それをルートにコピーしました。問題は、作成した新しい php ファイルにはアクセスできないが、すべての html ファイルにはアクセスできるように htaccess ファイルが設定されていることです。htaccess を編集するための多くのドキュメントを調べましたが、機能させることができませんでした。どんな助けでも大歓迎です。追加した新しいページは、contact.php、show-captcha.php、thank-you.php です。

RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]

#RewriteCond %{REMOTE_ADDR} !71\.239\.5\.36
#RewriteCond %{REQUEST_URI} !/maintenance.html$
#RewriteCond %{REQUEST_URI} !/img(.*)$
#RewriteCond %{REQUEST_URI} !/sync/$
#RewriteRule $ /maintenance.html [R=302,L]

##Errors##
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php

##Redirect##
RewriteCond %{HTTP_HOST} ^www.example.net [NC]
RewriteRule ^(.*)$ http://example.net/$1 [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ https://example.net/$1 [R,L]

##Common Files##
RewriteRule ^(.*)\~\57(.*)$ $1Main.php?file=$2 [NC]
RewriteRule ^(.*)ajax\57(.*)$ $1Main.php?ajax&$2 [NC]
RewriteRule ^(.*)sync\57(.*)$ $1Main.php?sync&$2 [NC]
RewriteRule ^(.*)backup\57(.*)$ $1Main.php?backup&$2 [NC]
RewriteRule ^(.*)SampleDoc(\57)(.*[^\57])(\57?)$ $1index.php?count=$3 [NC]

##REDIRECTS##
RewriteRule ^(.*)menu(\57)(.*[^\57])(\57)(.*[^\57])$ $1menu.php [NC]
RewriteRule ^(.*)menu(\57)(.*[^\57])(\57?)$ $1menu.php [NC]
RewriteRule ^(.*)menu(\57?)$ $1menu.php [NC]

RewriteRule ^(.*)checkout(\57)(.*[^\57])(\57)(.*[^\57])$ $1checkout.php [NC]
RewriteRule ^(.*)checkout(\57)(.*[^\57])(\57?)$ $1checkout.php [NC]
RewriteRule ^(.*)checkout(\57?)$ $1checkout.php [NC]

RewriteRule ^(.*)ThankYou(\57)(.*[^\57])(\57?)$ $1ThankYou.php?$3 [NC]
RewriteRule ^(.*)ThankYou(\57?)$ $1ThankYou.php [NC]

RewriteRule ^(.*)Contact(\57)(.*[^\57])(\57?)$ $1contact.php?$3 [NC]
RewriteRule ^(.*)Contact(\57?)$ $1contact.php [NC]

RewriteRule ^(.*)account(\57)(.*[^\57])(\57)(.*[^\57])(\57)(.*[^\57])$ $1account.php?type=$3&email=$5&code=$7 [NC]
RewriteRule ^(.*)account(\57)(.*[^\57])(\57?)$ $1account.php?type=$3 [NC]
RewriteRule ^(.*)account(\57?)$ $1account.php [NC]

RewriteRule ^(.*)catering(\57)(.*[^\57])(\57)(.*[^\57])$ $1catering.php?$3$5 [NC]
RewriteRule ^(.*)catering(\57)(.*[^\57])(\57?)$ $1catering.php?$3 [NC]
RewriteRule ^(.*)catering(\57?)$ $1catering.php [NC]

RewriteRule ^(.*)changepassword\57(.*[^\57])\57(.*[^\57])$ $1account.php?type=changepssd&email=$2&code=$3 [NC]
RewriteRule ^(.*)join(\57)(.*[^\57])(\57)(.*[^\57])$ $1account.php?type=join&email=$5&code=$7 [NC]

contact.php を追加しようとしましたが、役に立たないことがわかります。

4

2 に答える 2

1

パス変数をクエリ文字列に移動しない場合は、書き換え規則はまったく必要ありません。連絡先ページの RewriteRules を削除するだけです。まだ見つからないページが表示される場合は、削除してください

ErrorDocument 500 /error.php

Page Not Found から Server Errors までのすべてのエラーは、すべて同じ error.php になります。contact.php に何らかのエラーがある可能性があるため、常にこのページが表示されます。

それが役立つことを願っています!

于 2012-09-20T21:57:01.553 に答える
-1

連絡先のある既存の行を削除してみてください

#RewriteRule ^(.*)Contact(\57)(.*[^\57])(\57?)$ $1contact.php?$3 [NC]
#RewriteRule ^(.*)Contact(\57?)$ $1contact.php [NC]

そしてこれらを追加します:

RewriteRule ^(.*)contact(\57)(.*[^\57])(\57)(.*[^\57])$ $1contact.php [NC]
RewriteRule ^(.*)contact(\57)(.*[^\57])(\57?)$ $1contact.php [NC]
RewriteRule ^(.*)contact(\57?)$ $1contact.php [NC]

また、大文字と小文字を区別するように注意してください。

于 2012-09-18T00:46:12.403 に答える