Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 两个重定向规则相互冲突。htaccess_Php_.htaccess - Fatal编程技术网

Php 两个重定向规则相互冲突。htaccess

Php 两个重定向规则相互冲突。htaccess,php,.htaccess,Php,.htaccess,我有一个.htaccess文件的问题,已经修复,现在我有另一个问题。我希望使用.htaccess文件清理url。这是我目前的规则 RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?a=page&b=([^&]+)[\s&] [NC] RewriteRule ^ /%1? [R=301,L] RewriteRule ^([^/.]+)/?$ index.php?a=page&b=$1 [L,NC,QSA] 这

我有一个.htaccess文件的问题,已经修复,现在我有另一个问题。我希望使用.htaccess文件清理url。这是我目前的规则

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?a=page&b=([^&]+)[\s&] [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteRule ^([^/.]+)/?$ index.php?a=page&b=$1 [L,NC,QSA]
这将清除页面链接,指向一个干净的url,该url的链接包含
a=page
。它工作得很好。我尝试添加另一个规则,以便它适用于包含
a=rpofile
的链接,但它不起作用。但是,如果我删除上面的代码,它确实可以工作。似乎我不能同时运行两条规则。下面是上述代码的
a=profile
版本

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?a=profile&u=([^&]+)[\s&] [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteRule ^([^/.]+)/?$ index.php?a=profile&u=$1 [L,NC,QSA]

如果URL是
/about
,那么第一条规则将转发到
/index.php?a=page&b=about
现在相同的
/about
无法转发到
/index.php?a=profile&b=about

但您可以将
/profile/something
视为配置文件URL。

您可以有两条规则,如下所示:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?a=page&b=([^\s&]+)[\s&] [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteRule ^([^/.]+)/?$ /index.php?a=page&b=$1 [L,NC,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?a=profile&u=([^\s&]+)[\s&] [NC]
RewriteRule ^ /profile/%1? [R=301,L]
RewriteRule ^profile/([^/.]+)/?$ /index.php?a=profile&u=$1 [L,NC,QSA]

再次感谢!它工作得很好。一个简单的问题,我可以用
/profile/something
代替
/p/something
?我试着改变你把
p
eg
RewriteRule^/profile/%1放在哪里?[R=301,L]
重写规则^profile/([^/]+)/?$/index.php?a=profile&u=$1[L,NC,QSA]
,但它不起作用。再次感谢。