/ podcast / wp / 是一个文件夹,其他所有内容都是由RewriteEngine生成的虚拟目录。这是WordPress提供的代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /podcast/wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /podcast/wp/index.php [L]
</IfModule>
我想重定向 wp / 目录中的所有请求(现有文件夹除外)
排除以下可能的路径(也是虚拟目录):
/podcast/wp/ANYSTRING1/ANYSTRING2/feed
到另一个域:
example.com
使用.htaccess,而排除的路径仍然按原样运行。 目标是“隐藏”(重定向)除Feed之外的整个WordPress博客。
感谢您的帮助!
答案 0 :(得分:1)
将wordpress生成的规则更改为:
RewriteEngine On
RewriteBase /podcast/wp/
# new stuff
RewriteCond %{REQUEST_URI} ![^/]+/[^/]+/feed$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://example.com/ [L,R]
# original wordpress stuff
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /podcast/wp/index.php [L]
根据您希望如何处理重定向,您可以调整重定向到http://example.com/
的规则。如果您想要301永久重定向,请添加301
:
RewriteRule ^(.*)$ http://example.com/ [L,R=301]
如果要在重定向中保留相对URI,请使用反向引用:
RewriteRule ^(.*)$ http://example.com/$1 [L,R]
如果要保留整个URI(包括/podcast/wp/
部分,请使用URI:
RewriteRule ^(.*)$ http://example.com%{REQUEST_URI} [L,R]