我有以下我的.htacces文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog)/([^/\.]+)/?$ index.php?blog=$2
RewriteRule ^(tag)/([^/\.]+)/?$ index.php?tag=$2
当我有一个href到/ blog / blog-title的链接时,我得到404 Not Found但是当我点击/ href为/ tag / tag-title的链接时,它会显示我带有该标签的所有帖子。奇怪的是,如果我在我的主目录中创建一个名为blog的文件夹,/ blog / blog-title将起作用!
为什么会这样,为什么我必须为博客而不是标签?
答案 0 :(得分:0)
条件仅适用于第一条规则。如果您希望应用每个规则,则需要重复重写条件。
虽然我不确定为什么它最初没有工作,因为在任何一种情况下都不存在/blog/blot-title
,你实际上并不需要条件,因为模式是足够的。实际上你可以只使用一个规则:
RewriteEngine On
RewriteRule ^(blog|tag)/([^/\.]+)/?$ /index.php?$1=$2 [L]