我试图在很多方面做到这一点,但我真的不能从.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错误...
答案 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”的文件夹中。如果有效,请告诉我。