Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 若目录存在,则重写规则有效_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 若目录存在,则重写规则有效

.htaccess 若目录存在,则重写规则有效,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我的.htacces文件如下: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(blog)/([^/\.]+)/?$ index.php?blog=$2 RewriteRule ^(tag)/([^/\.]+)/?$ index.php?tag=$2 当我有指向/blog/blog标题的href链接时,我会得到一个404未找到,但当我单击

我的.htacces文件如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog)/([^/\.]+)/?$ index.php?blog=$2
RewriteRule ^(tag)/([^/\.]+)/?$ index.php?tag=$2
当我有指向/blog/blog标题的href链接时,我会得到一个404未找到,但当我单击指向/tag/tag标题的href链接时,它将显示我所有带有该标记的帖子。奇怪的是,如果我在我的主目录中创建一个名为blog的文件夹,/blog/blog标题就可以了


为什么是这样?为什么我必须为blog而不是tag这样做?

这些条件只适用于第一条规则。如果希望应用重写条件,则需要为每个规则重复这些条件

虽然我不确定它最初为什么不起作用,因为/blog/blot title在这两种情况下都不存在,但您并不真正需要这些条件,因为该模式具有足够的排他性。实际上,您可以只使用一条规则:

RewriteEngine On
RewriteRule ^(blog|tag)/([^/\.]+)/?$ /index.php?$1=$2 [L]

即使这样,它也会做标记,但它不会让我做博客,除非我的主目录中有一个名为blog的文件夹