0

.htaccess RewriteRuleを構成しようとしていますが、苦労しています。

私はドメインを持っていますwww.domain.com

これらの条件を追加しようとしています。

私は取り組んでいますwww.domain.com/.htaccess

if URL is www.domain.com with no path to file, redirect to www.domain.co.uk

if URL is www.domain.com AND has a path to file, no rewrite, allow.

if URL is www.domain.com AND has a path to file AND file doesnt exist, return 404

if URL points to a directory, return access forbidden

それらは私の要件です。

私は複数のことを試しました。これが私の.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=301,L]

このコードは最初の制約を満たします。

ただし、パスが存在するかどうか、パスが有効かどうか、またはそのディレクトリかどうかを確認する方法がわかりません。

完璧な答えは、すべての制約を満たし、それがどのように機能するかを説明するコードです。

私はmod_rewriteのドキュメントを、認めるよりも何度も読んだことがあります:'(

4

1 に答える 1

1
# Make sure / redirected to other domain
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^/$ http://www.domain.co.uk [R=301,L]

# Make sure directory listings are forbidden
Options -Indexes

を使用できることに注意してくださいRedirectMatch。この場合、実際には書き換えよりも優先されます。

そして、あなたの場合、ファイルを処理する必要はまったくありません-URIが/でない場合、ルールは適用されず、通常のファイル処理が実行されます(見つからない場合は404エラーなど...)

于 2012-06-20T14:33:24.340 に答える