【问题标题】:urlrewrite using an url parameter使用 url 参数的 urlrewrite
【发布时间】:2013-04-02 02:04:09
【问题描述】:

我对 apache 和 .htaccess 有疑问。我需要什么:将网址从 www.mywebsite.com 重写为 rome.mywebsite.com 或 lasangeles.mywebsite.com

脚本的工作原理: 启动 php 脚本 读取 cookie 并获取一个值(即 rome) 该脚本会将标头位置发送到 index.php?zone=rome 使用 .htacess 云的参数可以像 rome.mywebsite.com 一样重写 url

我做了什么: - 我创建了一个通配符 DNS 记录 A,例如 *.mywebsite.com - 我正在使用以下规则:

RewriteCond %{HTTP_HOST} !www.mywebsite.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-_]+).mywebsite.com [NC]
RewriteRule (.*) %{SCRIPT_FILENAME}?zone=%2 [NC,QSA]

但它不起作用!

在这里发帖之前,我在网站上进行了搜索,但所有答案都不适用于我的问题。

你有解决问题的想法吗?

提前感谢大家

【问题讨论】:

  • 如果您使用 PHP 进行一些处理然后重定向,是否有理由不直接从 PHP 重定向到 rome.example.com 或 losangeles.example.com?为什么需要整个 htaccess 重定向?
  • 我需要一个基于url中参数的urlrewrite
  • 您提到您启动 PHP 脚本、读取 cookie、获取值并将标头位置发送到 index.php?zone=XXX。您为什么不将该标头发送到 XXX.example.com 呢?
  • 因为我不能像世界上的城市一样创建子域的无限数量,我只需要重写 url
  • ...如果您进行重写,您使用相同的子域?!?所有请求都将通过相同的方法得到处理

标签: php apache .htaccess cookies url-rewriting


【解决方案1】:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www.mywebsite.com
RewriteCond %{HTTP_HOST} ^([w]{3})?\.?([a-z0-9-]+)\.mywebsite\.com
RewriteRule ^/? /index.php?zone=%2 [QSA]

试试这个,如果出现错误,只需完成其余的修复即可。
我刚刚给你举了一个例子,但仍然没有经过测试。

如果上面的代码不起作用,那么试试下面的代码:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www.mywebsite.com
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.mywebsite\.com
RewriteRule ^/? /index.php?zone=%1 [QSA]

RewriteCond %{HTTP_HOST} !^www.mywebsite.com
RewriteCond %{HTTP_HOST} ^www\.([a-z0-9-]+)\.mywebsite\.com
RewriteRule ^/? /index.php?zone=%1 [QSA]

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多