English 中文(简体)
如何将以/test/开头的URL重定向到单独的脚本?
原标题:
  • 时间:2008-11-27 18:10:26
  •  标签:

我有一个现有的htaccess,运行良好:

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

我希望修改这个,使得所有以 /test/ 开头的网址都指向 /test/default.php。

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

问题回答

基本上,在您的表达式前面只需输入/test/。此外,这里的括号是不必要的:

RewriteRule ^/test/ /test/default.php

如果您需要传递URL中的信息,可以使用括号捕获它,并将其发送到default.php(使用$1)如下:

RewriteRule ^/test/(.*)$ /test/default.php/$1

这样,http//..../test/foo/bar/将会结果为/test/default.php/foo/bar/。然后,您的脚本可以访问额外的信息。

我会使用:

RewriteCond %{REQUEST_URI} ^/([^/]*/)*
RewriteRule !/default.php$ %0default.php [L]
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




相关问题
热门标签