htaccess 301 redirect example.com/beta/xyz to example.com/xyz

时间:2010-12-03 04:07:29

标签: .htaccess redirect

我需要一个通用规则,将 /beta 子目录中的每个网址映射到根目录中的相应网址;基本上我需要从所有网址中删除 /beta

如果它有任何区别,则URL由WordPress动态生成。

目前我的 .htaccess 文件是:

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

你能告诉我把新线放在哪里吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以尝试一下吗?

RewriteEngine On
RewriteRule ^beta/(.*)$ http://example.com/$1 [R=301,L]

答案 1 :(得分:0)

您的问题并不完全清楚,但我敢打赌,您想要的是somedir/beta中安装的Wordpress会出现在 yoursite.com / 而不是 yoursite.com /β/ 。您粘贴的规则位于somedir/beta/.htaccess,是默认的Wordpress规则。你必须把它们留下来。

您需要的是在将 example.com 更改为您自己的域之后,将以下规则放在根目录中,如somedir/.htaccess。您的网络服务器首先会读取此根.htaccess,当它发生时,它会知道将请求重写为/ beta。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/beta/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /beta/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ beta/index.php [L] 
</IfModule>

食典委的更多信息: https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory