【发布时间】:2013-02-11 13:20:46
【问题描述】:
简化问题
我使用这个 .htaccess 代码将 domain.com/folder/client.php?id=1 更改为 1.domain.com
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domain.com$ [NC]
RewriteRule ^$ /client.php?id=%2 [QSA,NC]
现在我想将domain.com/folder/about.php?id=1 更改为1.domain.com/about。
有可能吗?还是有其他方法可以做到这一点?
谢谢你:D
老问题
在我的目录中,我有 2 页(client.php、about.php)。我已经为页面目录设置了一个通配符子域,并将domain.com/folder/client.php?id=1 更改为1.domain.com。这是我的 .htaccess 代码:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domain.com$ [NC]
RewriteRule ^$ /client.php?id=%2 [QSA,NC]
现在,我需要添加另一个页面。因此,在 client.php 页面中,有一个按钮可以转到同一目录中的 about.php 页面。我尝试了 1.domain.com/about.php 但它不起作用。
我必须创建另一行 RewriteCond 吗?还是有其他方法可以做到这一点?
非常感谢:D
没有工作ID的更新代码
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/about [NC]
RewriteRule ^$ /client.php?id=%2 [QSA,NC]
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+)\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/about [NC]
RewriteCond %{REQUEST_URI} !about\.php [NC]
RewriteRule . /about.php?id=%1 [L,QSA]
**代码解析了 url 框中的文本。假设id=1。现在它显示 1.domain.com/about。
the php code : `$_GET["id"]` is not specified.**
感谢 faa 的编辑:D
完整的解决方案
【问题讨论】:
-
一般来说,
about.php或任何文件名是 URL 路径的一部分,而不是主机名的一部分。所以,是的,您至少需要另一个条件指令来测试并最终捕获该字符串。不能说更多,因为:in client.php page, there's a button to go to about.php page对理解您的需求没有多大帮助。至少对我来说。 -
现在,在主页上,我的链接是
<a href="1.domain.com">,这意味着它将转到domain.com/folder/client.php?id=1。现在从1.domain.com表示domain.com/folder/client.php?id=1,我想转到domain.com/folder/about.php?id=1。在client.php页面中,如果我写另一个相同的条件,链接到about.php<a href的按钮将如何? -
我已经编辑了问题以使其更清晰。谢谢:D
标签: php mod-rewrite subdomain wildcard