【问题标题】:I need an .htaccess rule for rewriting the url from example.com/xyz to xyz.example.com我需要一个 .htaccess 规则来将 url 从 example.com/xyz 重写为 xyz.example.com
【发布时间】:2012-11-21 22:11:38
【问题描述】:

我目前有一个在子文件夹中运行的多个应用程序,我想移动到子域并用新网站替换当前站点,但仍然允许在以前的 url 中找到旧应用程序,例如

当前:mysite.com/application/page1.aspx

我想做的是将此应用程序移至 application.mysite.com/page1.aspx

我需要一个 .htaccess 重写规则来做两件事

  1. 仍将允许某人转到 mysite.com/application/page1.aspx 并进入应用程序
  2. 保持页面上显示的 URL 为 mysite.com/application/page1.aspx 隐藏它的事实 子域。

隐藏子域并不重要,因为它可以让 Google 高兴地在那些页面上找到它一直存在的内容。

注意:这个新的主站点是一个 wordpress 站点。

这是我现在在 htaccess 中的内容


<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /foldername/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} mysite.com/foldername$ [NC]
RewriteRule ^adminpgm/(.*)$ http://SUBDOMAIN.mysite.com/adminpgm/$1 [R=301,L]

RewriteRule . /foldername/index.php [L]

</IfModule>

【问题讨论】:

  • 一方面,新网站是一个 Wordpress 网站,所以我认为还有其他问题......但我编辑了原始帖子以显示我现在拥有的内容

标签: apache .htaccess mod-rewrite


【解决方案1】:

因为 Wordpress 还使用带有子文件夹的 url,这将很难自动化(如果您使用漂亮的 url,每个帖子、页面、类别等都可以显示为子文件夹)。

如果您确切知道要移动哪些应用程序,您可以这样做:

RewriteCond %{REQUEST_URI} ^/(application1|application2|another-one|application4)
RewriteRule ^([^/]*)/(.*)$ http://$1.domain.com/$2 [R=301,L]

只需将所有应用程序文件夹名称放在第一条规则中,用管道分隔 (|)

关于搜索引擎优化: “隐藏子域并不重要,因为它能让 Google 高兴地在那些页面上找到它一直存在的内容。”

只要您使用 [R=301] 标志进行重定向,Google 就会知道内容已移动并且完全没有问题。随着时间的推移,Google 将开始在搜索结果中显示子域而不是旧 URL,我认为这比必须永远支持旧 URL 更可取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2017-07-04
    • 2011-12-06
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多