0

私は正常に動作する既存の htaccess を持っています:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) /default.php 
DirectoryIndex index.php /default.php

/test/ で始まるすべての URL が /test/default.php に移動するようにこれを変更し、他のすべての URL は既存の /default.php のままにしたいと考えています。

例: http://www.x.com/hello.php -- > http://www.x.com/default.php例: http://www.x.com/test/hello.php -- > http://www.x.com/test/default.php

4

5 に答える 5

1

/test/ のルールを他のすべてのルールの前に置きますが、[L]一致した場合にそこで書き換えルールの処理を停止するフラグを付けます。

于 2008-12-01T17:37:36.003 に答える
0

これを試して

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (/test/)?(.*) $1/default.php 
DirectoryIndex index.php /default.php
于 2008-12-01T17:57:20.550 に答える
0

これを試して。

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

RewriteRule /test/.* /test/default.php 
RewriteRule .* /default.php 

DirectoryIndex index.php /default.php

値を変数として設定していないため、() も必要ありません。

于 2009-06-24T17:44:06.007 に答える
0

メイン フォルダーで、次の .htaccess を使用します。

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule .* default.php [L]
DirectoryIndex index.php default.php

あなたの./test/フォルダ(物理フォルダだと思います).htaccessに、同じファイルをコピーして貼り付けます。

/まず、デフォルトの先頭には必要ありませんでした。.htaccessApache は常に、ファイルが配置されているのと同じディレクトリを検索していると想定します。

第 2 に、Apache はファイルを検索するときに逆方向に検索し.htaccessます。したがって、./test/.htaccessに書かれているものはすべて上書きされ./.htaccessます。

于 2009-06-24T17:49:43.097 に答える
0

これはうまくいくはずです:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (test/)?(.*) $1default.php [L]
DirectoryIndex index.php /default.php
于 2008-12-01T18:04:23.017 に答える