如何在一个.htaccess文件中使用2个mod_rewrites


how to use 2 mod_rewrites in single .htaccess file

如何使用2个mod_rewrite块?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)'.zaks'.ir$ [NC]
RewriteCond $1 !^(www|ftp|mail)$ [NC]
RewriteRule ^.*$ index.php?id=%1 
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>

如何在1 htaccess文件中使用上述代码块?

您可以很容易地组合块,如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)'.zaks'.ir$ [NC]
RewriteCond $1 !^(www|ftp|mail)$ [NC]
RewriteRule ^.*$ index.php?id=%1 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>

Mod_rewrite将处理这些条件,直到它达到一个规则。然后,它从下一个条件开始,直到达到另一个规则。第一个区块中的条件不会影响第二个区块的条件,因为在第一组条件的末尾有一个RewriteRule

我想要这个地址

 param1.mysite.com/param2 

我转到这个地址

 mysite.com?p=param1&url=param2 

然而,上面的代码可以给朋友们,我很感激的帮助

我发现。。。。。。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{HTTP_HOST} !^www.mysite.ir [NC]
RewriteCond %{HTTP_HOST} ([^'.]+).mysite.ir [NC]
RewriteRule ^(.*)$ index.php?id=%1&url=$1 [L,NC]
</IfModule>