.htaccess重写规则已正确处理
我想将rewrite.htaccess重写规则已正确处理,.htaccess,apache2,.htaccess,Apache2,我想将rewrite/zp core/admin.php重定向到admin,但不知何故我无法让它工作 我已将此规则添加到我的htaccess中: RewriteEngine On RewriteBase / RewriteRule ^/admin$ /zp-core/admin.php [L] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^albums/?(.+/?)?$ $1 [R=301,L] ... # Catch-all - ev
/zp core/admin.php
重定向到admin
,但不知何故我无法让它工作
我已将此规则添加到我的htaccess中:
RewriteEngine On
RewriteBase /
RewriteRule ^/admin$ /zp-core/admin.php [L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^albums/?(.+/?)?$ $1 [R=301,L]
...
# Catch-all - everything else gets handled in PHP for compatibility.
RewriteRule ^(.*)/?$ index.php?album=$1 [L,QSA]
第三条规则应该这样做,但不知何故它没有。最后,当你说“重写A到B”时,它又回到了“一网打尽”规则,通常,“A”是用户键入的内容,“B”是您希望他得到的内容
如果A='/admin
'和B='/zp core/admin.php
'则第一条规则是确定的,如果删除其他规则,它将工作
问题是-apache在每个请求(包括子请求)上检查.htaccess,而您的重定向执行子请求。。。因此,它不再与第一条规则匹配,但随后出现了“一网打尽”规则,它再次匹配(您将看到,$\u GET[“album”]
在此类请求中点击index.php时将/zp core/admin.php
)
您需要做的是添加RewriteCond
,或者检查uri是否不是/zp core/admin.php
,或者您是否不在子请求中
要么:
RewriteCond %{REQUEST_URI} !^/zp-core/admin.php$
或:
RewriteCond %{IS_SUBREQ} !=true