0

public_html の私のフォルダーは /domain.com/public_html/ ですが、htaccess でそれらをフォルダー /domain/public_html/www/ にリダイレクトしたいのですが、 domain.com/www ではなく domain.com をドメインとして保持しています。

編集: public_html のサブフォルダー www をデフォルトのルートにし、public_html 自体ではなくしたい

これに関する解決策はありますか?

これが私の現在のhtacessです

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
<IfModule mod_rewrite.c>
    RewriteEngine On    
    RewriteRule ^(.*)$ www/$1 [NC,L]
</IfModule>
4

2 に答える 2

5

.htaccess しか使えない場合は、この単純なもので十分です。

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/www/
RewriteRule ^(.*)$ /www/$1 [QSA]

説明;

RewriteEngine on                      # Turn on mod_rewrite functionality
RewriteCond %{REQUEST_URI} !^/www/    # Don't rewrite requests that are 
                                      # already to the /www/ directory. 
                                      # If this isn't here, we'll go into
                                      # a neverending loop.
RewriteRule ^(.*)$ /www/$1 [QSA]      # Rewrite all else to the www subdirectory
                                      # QSA = keep the query string.

編集: 既存の htaccess が表示されませんでした。これ (冗長な RewriteEngine ステートメントを除く) は、IfModule ブロック全体ではなく、おそらく最後に配置する必要があります。

于 2012-10-05T12:44:42.297 に答える
0

public_htmlこれをフォルダーのhtaccessに入れてみてください:

<IfModule mod_rewrite.c>
    RewriteEngine On    
    RewriteRule ^(.*)$ www/$1 [NC,L]
</IfModule>

また

Apache 構成を編集します ( httpd.conf)

vi /usr/local/apache/conf/httpd.conf

DocumentRootドメインのを次のように設定します

DocumentRoot /home/user/public_html/www

ファイルを保存し、httpd サービスを再起動します。

または (推奨)

この質問を見てください(そしてそれは答えです) - https://stackoverflow.com/a/5891858/1361042

編集

この HTACCESS を使用します。

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/www/
    RewriteRule ^(.*)$ www/$1 [NC, QSA]
</IfModule>

自分のものに追加しないで、htaccess をこれに置き換えてください。

于 2012-10-05T12:15:29.783 に答える