0

localhost / test/{this}以降がlocalhost/test / index.php?{here}に転送されるように、書き換えルールを設定しようとしています。

私はサーバーにアクセスでき、構成は現在次のようになっています。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    <Directory /var/www/test/>
            AllowOverride All
            RewriteEngine On
            RewriteBase /
            RewriteRule ^(.*)$ index.php?$1      
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

しかし、現時点では、localhost / test / somethingにアクセスしたときに/localhost/test/index.php?somethingを表示する代わりに、localhost / index.phpが表示されるため、間違った場所に書き換えられます。何かアイデアはありますか?ありがとう

4

2 に答える 2

0

解決しました。AllowOverrideAllを含めると、/ index.phpにリダイレクトされ、以前のテストで.htaccessファイルが残っていて混乱していたことがわかりました。ルールを削除して更新し、現在は機能しています。手伝ってくれてありがとう!

于 2013-01-29T18:18:25.137 に答える
0

/var/www/test に .htaccess ファイルを作成します

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
于 2013-01-29T17:09:40.933 に答える