.htaccess 规则附加 index.php 而不是 URI

.htaccess rule appending index.php instead of URI

我的 .htaccess 看起来像这样..

Options -Indexes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/members/invite/ [R,L]

</IfModule>

我希望能够重定向看起来像这样的 URL..

https://sub.domain.com/ZTHF76

到...

https://www.domain.com/members/invite/ZTHF76

但我得到的是

https://www.domain.com/members/invite/index.php

我需要保留第一条规则,从应用程序其余部分的 URI 中删除 index.php

非常感谢任何帮助。

您应该重新排序您的规则并在重写之前保留重定向规则:

Options -Indexes
RewriteEngine On

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/members/invite/ [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]