0

Linux で Apache2 Web サーバーを実行しています 私のドメインは peku33.net です Apache の構成では、DomainAlias を *.peku33.net に設定しました

私の public_html ディレクトリには次のものがあります。

SomeSite.php
SomeOtherSite.php
SomeotherSiteEtc.php

リダイレクトしたい

SomeSite.php -> peku33.net/SomeOTHERText/
SomeOtherSite.php -> mysite.peku33.net/SomethingElse/
SomeotherSiteEtc.php -> mysubdomain.peku33.net/Blablabla/Blabla/

また、これらのファイルへの直接アクセスを無効にしたいと考えています ( http://peku33.net/SomeSite.phpを呼び出すと、適切な Location: で 304 または 301 コードが返されます)。

リプレイありがとうございます!

4

2 に答える 2

1

簡単なことですが、サイトのドキュメント ルート ディレクトリにある.htaccessファイルに次の行に沿って何かを貼り付けるだけです (Apache はリクエストごとにファイルを読み取って解析するため、それほど効率的ではありません。また、ディレクトリインクルードがサイト ドキュメント ルートのhttpd.conf )、またはできれば Apache のhttpd.conf内のVirtualhost定義、または関連する含まれている.conf :

RewriteEngine On

RewriteCond %{HTTP_HOST)          ^peku33\.net$        [NC]
RewriteRule ^/?SomeOTHERText/     SomeSite.php         [L]

RewriteCond %{HTTP_HOST)          ^mysite              [NC]
RewriteRule ^/?SomethingElse/     SomeOtherSite.php    [L]

RewriteCond %{HTTP_HOST)          ^mysubdomaint        [NC]
RewriteRule ^/?Blablabla/Blabla/  SomeotherSiteEtc.php [L]

#Attempt to block direct requests to a .php script, only internally rewritten requests should get through 
RewriteCond %{THE_REQUEST}        SomeSite\.php        [NC]
RewriteRule ^/?SomeSite.php       -                    [F,NC]

ノート:

F   = Fail   (Could use G=Gone or R=### instead)
NC  = Not Case-sensitive
L   = Last
^/? = optional leading slash, best to leave in place, as the leading slash is stripped from the URI, when the rule is .htaccess based.

Apache mod_rewriteのドキュメントは、上記のルールが何をするのか不明な場合、またはもう少し抽象的な内容が必要な場合は、次の投稿を検討する価値があります。

于 2012-11-14T00:42:49.677 に答える
0

http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirect

Redirect /SomeSite.php http://peku33.net/SomeOTHERText/

permanenttemp、およびseeotherをそれぞれ 301、302、および 303 リダイレクトに追加できます。

于 2012-11-05T20:49:56.287 に答える