0

Apache mod_rewrite ルールを機能させるのにかなりの時間を費やしています。プロセスを最も困難にしているのは、最終的な出力文字列が何であるかを知る方法がないことです。引き続き 404 ページが表示されますが、私が何か間違ったことをしたこと以外はあまりわかりません。404 にリダイレクトするのではなく、最終的な書き換えをエコーアウトする方法はありますか?

. . . そして、誰かが私の最初の問題で私を助けたいと思った場合に備えて、に行く人は誰でもに/server/root/to/folder/public_html/リダイレクトされるようにしようとしてい/server/root/to/folder/public_html/destinationFolder/ます. 以下は、私が試した何百ものバリエーションの1つです。

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteCond $1 !^(favicon\.ico|assets)

    RewriteRule ^public_html/(.*) destinationFolder/$1 [L]

</IfModule>
4

1 に答える 1

1

システムパスを使用しています。Apache mod_rewriteはURLでのみ機能します(PTフラグは.htaccessファイルに含まれています)。これが最初のエラーです。

public_html通常はルートディレクトリです。例えば:http://mydomain.com

次に、完全なルールセットは次のようになります。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  !^(favicon\.ico|assets)  [NC]
RewriteRule  ^(.*)/?$    DestinationFolder/$1        [L]

静かにマップ

http://mydomain.com/Anything

に:

http://mydomain.com/DestinationFolder/Anything

anythingファイルfavicon.icoまたはフォルダの場合を除く/assets

永続的なリダイレクトの場合は、次のように置き換え[L]ます[R=301,L]

これは単なる例です。ルールとパラメータは、実際の要件を満たすように変更する必要があります。

于 2013-01-30T03:13:18.510 に答える