无法从重写规则中排除目录

时间:2010-07-29 02:48:29

标签: wordpress .htaccess mod-rewrite

我试图在很多方面做到这一点,但我真的不能从.htaccess中的wordpress重写规则中排除目录“进度”。我找到了很多解决方案,但似乎都没有。 wp根目录中的.htaccess包含:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress

我尝试使用

RewriteCond %{REQUEST_URI} !^/(progress/.*)$

RewriteRule ^progress($|/) - [L]

RewriteCond %{REQUEST_URI} !^/?(admin|progress)/

我甚至试图将Alias / progress / home / website / progress放到httpd.conf但它仍然无法正常工作。当然,mod_rewrite已安装并正常工作,它将我重定向到index.php,当我尝试访问目录时显示404错误...

4 个答案:

答案 0 :(得分:3)

来自here

#Change 
RewriteRule . /index.php [L]

#to:
RewriteRule ./ /index.php [L]

答案 1 :(得分:2)

正确使用时,您的两次尝试都应该有效。随着规则的顺序测试,您需要将特殊情况放在现有的Wordpress规则之前:

RewriteRule ^progress($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

或者当使用附加条件时(好吧,这里条件的顺序无关紧要,因为它们所有必须满足):

RewriteCond %{REQUEST_URI} !^/(admin|progress)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

答案 2 :(得分:1)

目录progress是否确实存在?里面有什么?

您在.htaccess

的上下文中放置了您提供的代码

RewriteCond %{REQUEST_FILENAME} !-d表示如果请求转换为真实目录,则忽略重写规则。

答案 3 :(得分:0)

而不是关注.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress

使用要从wordpress htaccess规则中排除的文件夹名称为RewriteBase,所以基本上尝试在.htaccess文件中写下“FOLDER_NAME”文件夹

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /FOLDER_NAME
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress

将此.htaccess文件放入名为“FOLDER_NAME”的文件夹中。如果有效,请告诉我。