这是RewriteRule的冗余吗?

时间:2018-08-23 11:54:45

标签: .htaccess

我在.htaccess文件夹中找到了一个/htdocs/wordpress/文件。

URL www.example.com指向/htdocs目录。

Wordpress由www.example.com/wordpress

调用

这是.htaccess的内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

我在https://stackoverflow.com/a/27913187/2311074中发现

  

像这样使用RewriteBase ...

RewriteBase /folder/
RewriteRule a\.html b.html
     

与...基本上相同...

RewriteRule a\.html /folder/b.html
     

但是,当.htaccess文件位于/ folder /内时,这也指向同一目标:

RewriteRule a\.html b.html

所以我猜它不需要了吗?此外,我看不到

RewriteRule ^index\.php$ - [L]

在做。重定向到哪里?无论如何,所有内容最终都会重定向到

RewriteRule . /wordpress/index.php [L]

所以无论如何都要重写第一个RewriteRule,对吧?

上面的.htaccess文件是否与此等效:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

如果我正确的话,此规则会阻止直接访问index.php,那么当用户尝试直接访问index.php时,“-”将执行403禁止访问。

RewriteRule ^index\.php$ - [L]