【问题标题】:.htaccess - virtual subdomain as address to file.htaccess - 虚拟子域作为文件地址
【发布时间】:2014-02-07 03:22:53
【问题描述】:

我有一个地址:

http://referendum24.pl/referendum.php?id=1389912771-przykladowe-referendum

但我想使用.htaccess 进行重定向,因为上面给定的页面在地址可用:

http://1389912771-przykladowe-referendum.referendum24.pl/

$_GET['id'] 是自动生成的。 像上面显示的页面会很多,所以很高兴该命令是通用的。

【问题讨论】:

  • 您的问题是关于“如何进行重定向”或“如何设置多个子域”?
  • 如何对自动生成的页面进行重定向,如我朋友上面的例子:)
  • 看起来相当笨拙。 http://referendum.pl/referendum/1389912771-przykladowe 的 SEO 格式不是更干净吗?您甚至可能冒着您的服务器/Apache 将拒绝该 URL 的风险,因为子域实际上并不存在,甚至在它到达 .htaccess 之前。
  • 也许你是对的......它实际上看起来不太好。谢谢!

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

将此代码放入您的DOCUMENT_ROOT/.htaccess 文件中:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^referendum24\.pl$ [NC]
RewriteCond %{THE_REQUEST} \s/+referendum\.php\?id=([^\s&]+) [NC]
RewriteRule ^ http://%1.%{HTTP_HOST}/? [R=302,L]

更新:

RewriteCond %{HTTP_HOST} ^(.+?)\.(referendum24\.pl)$ [NC]
RewriteRule ^ /referendum.php?id=%1 [L]

【讨论】:

【解决方案2】:

如果你没有 apache rewrite 模块,你可以使用 php :

全民公决.php

<?php
if (isset($_GET['id']))
{
  $id = $_GET['id'];
  header('Location: http://'.$id.'.refrendum24.pl');
  exit;
}

您可以选择添加 HTTP 301 响应代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 2011-08-20
    • 2011-01-11
    相关资源
    最近更新 更多