因为我是.htaccess的新手,所以我想尽量使用它。我正在重写一些网址虽然问题是,如果我重写3个网址,那么最重要的是唯一正在工作的网址。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^forums/([^/]*)/([^/]*)/$ /forums.php?page=$1§ionid=$2 [L]
RewriteRule ^forums/([^/]*)/topic/([^/]*)/$ /forums.php?page=$1&topic=$2 [L]
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php
所以,如果我在第一个规则之上添加一个新规则,那将是唯一有效的规则。 我用错了吗?
另外,RewriteCond是如何工作的?
答案 0 :(得分:0)
尝试删除[L]
标记或为每个规则创建单独的RewriteCond,
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^forums/([^/]*)/([^/]*)/$ /forums.php?page=$1§ionid=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^forums/([^/]*)/topic/([^/]*)/$ /forums.php?page=$1&topic=$2 [L]
在最后一条规则上使用[L]
。
答案 1 :(得分:0)
感谢@Abhishek的回答,我得到了解决。
我必须为每个网址使用不同的Rewriterules。所以他们在某种程度上是独一无二的。