1

ウェブサイトに変更を加える必要がありますが、変更が正しいことを確認するまでライブ アカウントには変更を加えたくありません。私のアカウントは GoDaddy にあり、彼らによると、それを行う唯一の方法は、すべてのファイルを別のフォルダーに移動し、そのフォルダーに移動して変更をテストすることです。Web ブラウザから Duphil.com を呼び出す代わりに、Duphil.com/DuphilWork を使用します。.htaccess ファイルのコーディングでは、このフォルダーにとどまることはできません。

コーディングは次のとおりです。

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

ErrorDocument 404 /index.php?page=404
ErrorDocument 403 /index.php?page=403

RewriteRule ^$ /index.php
RewriteRule ^about/$ /index.php?page=about
RewriteRule ^oilfield/$ /index.php?page=oilfield
RewriteRule ^pipeline/$ /index.php?page=pipeline
RewriteRule ^safety/$ /index.php?page=safety
RewriteRule ^sales/$ /index.php?page=sales
RewriteRule ^contact/$ /index.php?page=contact
RewriteRule ^stateLicensures/$ /index.php?page=stateLicensures
RewriteRule ^keyPersonnel/$ /index.php?page=keyPersonnel
RewriteRule ^projectListings/$ /index.php?page=projectListings
RewriteRule ^legal/$ /index.php?page=legal
RewriteRule ^techDivision/$ /index.php?page=techDivision

RewriteRule ^equipment/$ /index.php?page=equipment
RewriteRule ^projectImages/$ /index.php?page=projectImages
RewriteRule ^contact/(.*)/$ /index.php?page=contact&contactName=$1

どうすればこれを達成できますか?

4

1 に答える 1

0

あなたのやり方.htaccessはかなり厄介です。すべてのページのルールにはいくつかの欠点がありますが、その中でも特に、ページを追加する場合は、を更新する必要があるという点があります.htaccess。もう1つの欠点は、ルールごとに追加する必要があるため、単純に例外を追加できないことです。ただし、私たちにできることの1つは、ページをそれ自体に書き換えて、一度行った後は書き換えを続行しないように指示することです。

RewriteRule ^DuphilWork/(.*)$ DuphilWork/$1

RewriteRule ^$ /index.php
[..]

これは、書き直さずにテストサイトにURLを書き込む必要があることを意味します。言い換えれば、それらは次のようなものでなければなりません:Duphil.com/DuphilWork/index.php?page=oilfield

テストサイトでもより洗練されたURLを記述したい場合、現在の設定での唯一の方法は、のほぼすべてのルールをコピーし、コピーの1つで一致パターンとリダイレクトパスに.htaccess追加することです。DuphilWork

もちろん、実際の解決策は、次のような単一のルールを持つことです。

RewriteCondition !-f
RewriteRule ^(.*)$ /index.php?page=$1

次に、index.phpがそのページ文字列を正しく解析することを確認します(これには、ページが存在することの確認が含まれます。その場合、現在の問題を解決するのは簡単になります。ただし、これをで機能させることができるはずです。私が上で与えた解決策。


すべてをコピーすることを含む上記の戦略を使用すると、次のようになります。

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

ErrorDocument 404 /index.php?page=404
ErrorDocument 403 /index.php?page=403

RewriteRule ^DuphilWork/$ /DuphilWork/index.php
RewriteRule ^DuphilWork/about/$ /DuphilWork/index.php?page=about
RewriteRule ^DuphilWork/oilfield/$ /DuphilWork/index.php?page=oilfield
RewriteRule ^DuphilWork/pipeline/$ /DuphilWork/index.php?page=pipeline
RewriteRule ^DuphilWork/safety/$ /DuphilWork/index.php?page=safety
RewriteRule ^DuphilWork/sales/$ /DuphilWork/index.php?page=sales
RewriteRule ^DuphilWork/contact/$ /DuphilWork/index.php?page=contact
RewriteRule ^DuphilWork/stateLicensures/$ /DuphilWork/index.php?page=stateLicensures
RewriteRule ^DuphilWork/keyPersonnel/$ /DuphilWork/index.php?page=keyPersonnel
RewriteRule ^DuphilWork/projectListings/$ /DuphilWork/index.php?page=projectListings
RewriteRule ^DuphilWork/legal/$ /DuphilWork/index.php?page=legal
RewriteRule ^DuphilWork/techDivision/$ /DuphilWork/index.php?page=techDivision

RewriteRule ^DuphilWork/equipment/$ /DuphilWork/index.php?page=equipment
RewriteRule ^DuphilWork/projectImages/$ /DuphilWork/index.php?page=projectImages
RewriteRule ^DuphilWork/contact/(.*)/$ /DuphilWork/ index.php?page=contact&contactName=$1

RewriteRule ^$ /index.php
RewriteRule ^about/$ /index.php?page=about
RewriteRule ^oilfield/$ /index.php?page=oilfield
RewriteRule ^pipeline/$ /index.php?page=pipeline
RewriteRule ^safety/$ /index.php?page=safety
RewriteRule ^sales/$ /index.php?page=sales
RewriteRule ^contact/$ /index.php?page=contact
RewriteRule ^stateLicensures/$ /index.php?page=stateLicensures
RewriteRule ^keyPersonnel/$ /index.php?page=keyPersonnel
RewriteRule ^projectListings/$ /index.php?page=projectListings
RewriteRule ^legal/$ /index.php?page=legal
RewriteRule ^techDivision/$ /index.php?page=techDivision

RewriteRule ^equipment/$ /index.php?page=equipment
RewriteRule ^projectImages/$ /index.php?page=projectImages
RewriteRule ^contact/(.*)/$ /index.php?page=contact&contactName=$1
于 2012-11-08T21:40:45.377 に答える