我有一个现有的htaccess工作正常:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) /default.php
DirectoryIndex index.php /default.php
我希望修改这个,以便以/ test /开头的所有网址都转到/test/default.php,,同时保留所有其他网址与现有的/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
答案 0 :(得分:1)
将规则/ test / in放在规则之前,但是给它一个[L]
标志,以便在匹配时停止重写规则处理。
答案 1 :(得分:0)
试试这个
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (/test/)?(.*) $1/default.php
DirectoryIndex index.php /default.php
答案 2 :(得分:0)
这应该有效:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (test/)?(.*) $1default.php [L]
DirectoryIndex index.php /default.php
答案 3 :(得分:0)
试试这个。
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule /test/.* /test/default.php
RewriteRule .* /default.php
DirectoryIndex index.php /default.php
您也不需要(),因为您没有将值设置为变量。
答案 4 :(得分:0)
在您的主文件夹中,使用以下.htaccess
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule .* default.php [L]
DirectoryIndex index.php default.php
在./test/
文件夹(我假设它是一个物理文件夹)中,复制并粘贴相同的.htaccess
文件。
首先,您在默认开始时不需要/
。 Apache总是假设它正在寻找.htaccess
文件所在的目录。
其次,Apache在查找.htaccess
文件时会向后看。因此./test/.htaccess
中的任何内容都会覆盖./.htaccess
中的内容。