0

/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,而排除的路径保持原样工作。目标是“隐藏”(重定向)除提要之外的整个 WordPress 博客。

谢谢你的帮助!

4

1 回答 1

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]
于 2013-01-12T19:31:13.057 回答