Php htaccess重写和重定向URL

Php htaccess重写和重定向URL,php,.htaccess,mod-rewrite,redirect,Php,.htaccess,Mod Rewrite,Redirect,我正在寻找一个htaccess规则,可以做到这一点: 原始URL:?til=main 替换为:/main 如果是这样的话: 原始URL:/index.php?til=main或?til=main 重定向到:/main 到目前为止,我只有以下代码: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?til=$1 [L,QSA] 它加载/main,

我正在寻找一个htaccess规则,可以做到这一点:

原始URL:
?til=main
替换为:
/main

如果是这样的话:

原始URL:
/index.php?til=main
?til=main
重定向到:
/main

到目前为止,我只有以下代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?til=$1 [L,QSA]
它加载
/main
,但在它后面加载
/index.php?til=main
试试:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+(?:index\.php|)\?til=([^&\ ]+)
RewriteRule ^ /%1? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?til=$1 [L,QSA]
尝试:

这应该起作用:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?til=(.*)\ HTTP [OR]
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /index\.php\?til=(.*)\ HTTP
RewriteRule ^ /%2? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?til=$1 [L]
它应该将
index.php?til=main
?til=main
重定向到
/main
,这样应该可以:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?til=(.*)\ HTTP [OR]
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /index\.php\?til=(.*)\ HTTP
RewriteRule ^ /%2? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?til=$1 [L]

它应该将
index.php?til=main
?til=main
重定向到
/main

如果我转到index.php?til=main或?til,它不会重定向=main@JonLin谢谢你的截图:如果我转到index.php?til=main或?til,Dit不会重定向=main@JonLin感谢您提供的屏幕截图:DHO如何替换til=main以获得类似的功能直到=%1??是的,它可以工作。。。快速问题如果我这样使用它有什么问题吗:
RewriteCond%{THE_REQUEST}^[A-Z]{3,9}\/(*)til=([^&\]+)\HTTP RewriteRule^/folder/%2?[R=301,L]
它似乎可以很好地处理index.php?til=xxxx和?til=xxxx@Ered
(.*)
它匹配在第一个捕获组中出现零次或多次的任何字符(断行除外)(您可以使用
$1
引用)。而后面的
([^&\]+)
在引用
$2
的第二个捕获组中匹配除&、\和空格之外的任何字符,这些字符在第二个捕获组中有一个或多个时间。我如何将til=main替换为til=%1?是的,它可以工作。。。快速问题如果我这样使用它有什么问题吗:
RewriteCond%{THE_REQUEST}^[A-Z]{3,9}\/(*)til=([^&\]+)\HTTP RewriteRule^/folder/%2?[R=301,L]
它似乎可以很好地处理index.php?til=xxxx和?til=xxxx@Ered
(.*)
它匹配在第一个捕获组中出现零次或多次的任何字符(断行除外)(您可以使用
$1
引用)。而后一个
([^&\]+)
匹配除&、\和空格以外的任何字符,在第二个捕获组中有一个或多个时间,该组引用了
$2