RewriteRule似乎没有替换

问题描述:

我想了解其他人写的.htaccess文件的内容。 RewriteRule ^index\.php$ - [L]下面完成了什么?RewriteRule似乎没有替换

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^admin/(.*)$      index.php?type=admin&action=view&page=$1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^login$        index.php?action=view&type=login&%1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^forgot-password$     index.php?action=view&type=forgot-password&%1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^edit/user(/)?$      index.php?action=edit&type=user&%1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^signup(/)?$      index.php?action=edit&type=user&id=0&%1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^user/([0-9]+)(/)?     index.php?action=view&type=note&user=$1&%1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^(suggestion|comment)/([0-9]+)(/)? index.php?action=view&type=note&page=open&note_type=$1&note=$2&%1 [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^([0-9A-Za-z\-_]+)/(suggestion|comment)/([0-9]+)(/)? index.php?action=view&type=note&page=$1&note_type=$2&note=$3&%1 [L] 

#Catch All Pages 
RewriteRule ^index\.php$ - [L] 

RewriteCond %{QUERY_STRING} ^(.*)?$ 
RewriteRule ^([0-9A-Za-z\-_]+)(/)?   index.php?action=view&type=page&page=$1&%1 [L] 

这意味着“什么都不做”。

破折号表示不应该执行替换(现有路径通过未触及)。当需要在不改变路径的情况下应用标志(见下文)时使用这个标志。

你可以在这里阅读类似的问题:

Apache RewriteRule, - (dash) as substitution

Hyphen in .htaccess file rewrite rule

而且mod_rewrite documentation