1

www.abcd.comというウェブサイトがあります。URL http://abcd.comを使用してアクセスすると、正常に動作します。しかし、私が望むのは、ユーザーが URL http://abcd.comを使用する場合、Web サーバーはそれを URL www.abcd.comに変換できるはずです。

%LOCATION_CONTAINS_HTACCESS_FILE% = 何らかのパス

httpd.config のいくつかの重要な変更は次のとおりです。

1. DocumentRoot "/var/www/html"


2. <Directory />
    Options FollowSymLinks
    AllowOverride All       #changed to All
</Directory>


3. <Directory "%LOCATION_CONTAINS_HTACCESS_FILE%">
    AllowOverride All
</Directory>


4. AccessFileName .htaccess                             #default
5. %LOCATION_CONTAINS_HTACCESS_FILE%/.htaccess           # I added 
6. <Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

私の.htaccess

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

これらの変更により、「 service httpd restart」を実行すると、5 行目 (上からだと思います) でエラーが発生します。

Starting httpd: Syntax error on line 415 of /etc/httpd/conf/httpd.conf:
Invalid command '%LOCATION_CONTAINS_HTACCESS_FILE%/.htaccess', perhaps misspelled or defined by a module not included in the server configuration

私はウェブ上のほとんどのリンクを調べましたが、これに対する特定の解決策を得ることができませんでした.

私は Web サービスについてあまり知識がありません。しかし、より簡単な解決策を待っています。

皆さんがこの問題に直面し、確実に解決されることを願っています。

4

1 に答える 1

1

私は常に以下のスニペットを使用します。

RewriteEngine On
RewriteBase /

# Redirect non-canonical domains
RewriteCond %{HTTP_HOST}   !^www.yourdomain.com$ [NC]
RewriteRule ^(.*)$         http://www.yourdomain.com/$1 [L,R=301]

# Redirect non-www to www version
RewriteRule %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+\.[a-z]{2,6})$ [NC]
RewriteRule ^(.*)$       http://www.%1/$1      [R=301,L]

次の 2 つのことを行います。

  1. 最初のスニペット (「非標準ドメインのリダイレクト」の下) は、エイリアス (例: my-domain-alias.com) から入ってきた訪問者をメイン ドメイン (yourdomain.com) にリダイレクトします。301 リダイレクト (永続的) を使用して、これが正しいアドレスであることを検索エンジンに知らせます (重複したコンテンツではない)。
  2. www プレフィックスが使用されているかどうかを確認します。そうでない場合はリダイレクトし、さらに 301 ステータス コードを使用してリダイレクトします。

注: NC フラグは、大文字と小文字を無視してチェックするように Apache に指示します。

- 編集:

order ディレクティブを次のように変更します。

# Protect hidden files from being viewed
<Files .*>
        Order Deny,Allow
        Deny From All
</Files>

これにより、.htaccess/.htpasswd ファイルなどだけでなく、すべての隠しファイル (存在する場合は php .user.ini ファイル) へのアクセスが拒否されます。

于 2013-06-25T12:16:20.680 に答える