我有一个现有的htaccess工作正常:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) /default.php
DirectoryIndex index.php /default.php
我希望修改它,以便以/ test /开头的所有网址都转到/test/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 :(得分:3)
基本上,只需将/test/
放在表达式前面。此外,这里不需要括号:
RewriteRule ^/test/ /test/default.php
答案 1 :(得分:0)
如果您需要从URL传递信息,您可以捕获它(带括号)并将其发送到default.php(使用$ 1),如下所示:
RewriteRule ^/test/(.*)$ /test/default.php/$1
这样http //..../ test / foo / bar /将导致/test/default.php/foo/bar/。然后,您的脚本可以访问额外信息。
答案 2 :(得分:0)
我会用:
RewriteCond %{REQUEST_URI} ^/([^/]*/)*
RewriteRule !/default\.php$ %0default.php [L]
答案 3 :(得分:0)
RewriteRule ^/test(/.*)?$ /test/default.php [L]
如果需要,在$ _SERVER全局数组中访问原始URI。
根据您的原件判断,您可能想要:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^/test(/.*)?$ /test/default.php [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /default.php