【发布时间】:2013-07-12 06:19:16
【问题描述】:
我想知道当 RewriteEngine On 嵌入到 IfModule mod_rewrite.c 时,我是否只能在我的 htaccess 中使用一次,还是每次都必须使用它因为它被嵌入? p>
请参见下面的示例。谢谢
<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>
【问题讨论】:
-
您还应该避免使用多个
RewriteBase指令。虽然它不会产生错误,但在任何一个 .htaccess 文件中包含多个是无效的。最后一个获胜并控制整个 .htaccess 文件。在这个文件中,无论如何它看起来是不必要的 - AFAIK 只有在RewriteRule指令中有相对路径替换时才需要它。
标签: apache .htaccess mod-rewrite url-rewriting webserver