【问题标题】:Redirect site with .htaccess but exclude one folder while repointing index.php使用 .htaccess 重定向站点,但在重新指向 index.php 时排除一个文件夹
【发布时间】:2017-05-31 05:11:19
【问题描述】:

我有一个域,其中包含安装在根目录中的商店和名为 /web/ 的子文件夹中的 WordPress

/public_html/ # shop
            /web/ # wordpress

我正在将商店迁移到新域。 WordPress 仍然存在。

我希望 301 重定向所有商店页面,但不包括 WordPress 请求。这部分有效。

# Redirect shop to new domain
RewriteEngine on
RewriteCond %{REQUEST_URI} !^web($|/)$ 
RewriteRule (.*) http://www.new-domain.co.uk/$1 [R=301,L]

以下类似的线程将我引向上述解决方案。

我现在要做的是让进入旧域的访问者简单地重定向到 /web/。我试过添加:

RewriteCond %{REQUEST_URI} !^/index\.php$

但这不能排除根索引文件。

我想我需要另一个 RewriteRule 在某个地方。

【问题讨论】:

  • 将 !^/index\.php$ 替换为 RewriteCond %{REQUEST_URI} !^/$ 以停止索引重定向

标签: .htaccess redirect


【解决方案1】:

经过更多的试验和错误,我得出了以下对我有用的结果。

# Redirect shop to new domain
RewriteEngine on
RewriteCond %{REQUEST_URI} !^web($|/)$ 
RewriteCond %{REQUEST_URI} !^/$
RewriteRule (.*) http://www.new-domain.co.uk/$1 [R=301,L]

# Redirect root to /web/
RewriteCond %{REQUEST_URI} ^/$
RewriteRule (.*) http://www.current-domain.co.uk/web/$1 [R=301,L]

我编辑了第一个 RewriteRule 并排除了根“/”

然后我创建了第二个 RewriteRule,仅将根移动到“/web/”

【讨论】:

    猜你喜欢
    • 2011-03-25
    • 2017-04-07
    • 2023-03-23
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    相关资源
    最近更新 更多