我想知道将htaccess嵌入IfModule mod_rewrite.c时是否只能在htaccess中使用一次RewriteEngine On,还是每次都必须使用它,因为它已嵌入?
请参见下面的示例。谢谢
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} /?author [NC]
RewriteRule .* - [F]
</ifModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} g= [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
最佳答案
您应该能够对所有重写代码进行一次检查。
我从您的代码中怀疑正在处理的站点将无法正常运行,或者根本未启用mod_rewrite。在这种情况下,我将完全省略对mod_rewrite的检查,如果未启用,则让Web服务器失败。
如果您最终会遇到在未启用mod_rewrite的情况下将代码安装在Web服务器上的情况,那么调试和查明确切问题会容易得多。