Php Htaccess重写规则不重定向,但通过参与所需的url工作

Php Htaccess重写规则不重定向,但通过参与所需的url工作,php,apache,.htaccess,redirect,url-rewriting,Php,Apache,.htaccess,Redirect,Url Rewriting,我不熟悉.htaccess,很多网站都有关于何时使用what的例子,但没有一个解释什么部分做什么 我有下面的.htaccess Options +FollowSymlinks RewriteEngine on # DirectoryIndex /$1 index.php?u$1 RewriteCond %{QUERY_STRING} !marker RewriteCond %{QUERY_STRING} u=([-a-zA-Z0-9_+]+) RewriteRule ^/?index.p

我不熟悉.htaccess,很多网站都有关于何时使用what的例子,但没有一个解释什么部分做什么

我有下面的.htaccess

Options +FollowSymlinks
RewriteEngine on
# DirectoryIndex /$1 index.php?u$1
RewriteCond %{QUERY_STRING} !marker  
RewriteCond %{QUERY_STRING} u=([-a-zA-Z0-9_+]+)  
RewriteRule ^/?index.php$ %1? [R=301,L]   
RewriteRule ^/?([-a-zA-Z0-9_+]+)$ ?marker&u=$1 [L]
这用于
index.php?u=$1
.com/$1
,当我导航到
.com/$1
时,它会工作,但当我导航到
index.php?u=$1
时,它会显示
index.php?u=$1

问题:

我想从
index.php?u=$1
重定向到
.com/$1

我尝试设置
DirectoryIndex
,但错误是我的页面重定向次数太多


请帮忙

请尝试删除第一个重写条件。您的第一个条件不允许使用旧url,这就是为什么没有从旧url重定向到新url的原因。@starkeen或我真的很笨,或者输出是相同的。我删除了第一个'RewriteCond%{QUERY\u STRING}!marker'和它一样,当我进入index.php?u=$1时,它显示index.php?u=$1,当我进入。/$1时,它显示。/$1,所以它是一样的……你还有其他规则吗?正如你所看到的。。。。如果这很重要,我在本地主机上?请尝试删除第一个重写条件。您的第一个条件不允许使用旧url,这就是为什么没有从旧url重定向到新url的原因。@starkeen或我真的很笨,或者输出是相同的。我删除了第一个'RewriteCond%{QUERY\u STRING}!marker'和它一样,当我进入index.php?u=$1时,它显示index.php?u=$1,当我进入。/$1时,它显示。/$1,所以它是一样的……你还有其他规则吗?正如你所看到的。。。。我在本地主机上,如果这很重要?