0

简化问题

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]

现在我想更改domain.com/folder/about.php?id=11.domain.com/about.

是否可以 ?还是有其他方法可以做到这一点?

谢谢 :D


老问题

在我的目录中,我有 2 页(client.php, about.php)。我已经为页面目录设置了一个通配符子域并更改domain.com/folder/client.php?id=11.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


完整的解决方案

参考Using mod-Rewrite with 5 pages (wildcard sub-domain)

4

1 回答 1

0

你可以试试这个:

Options +FollowSymLinks
RewriteEngine on

## This is the actual rule-set that works as it is according to the OP
RewriteCond %{HTTP_HOST} !^www.domain.com$             [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domain.com$   [NC]
# Added to exclude folder `/about`
RewriteCond %{REQUEST_URI} !^/about                    [NC]
RewriteRule ^$ /client.php?id=%2                       [L,QSA,NC]

## This is the additional rule set
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 . http://domain.com/folder/about.php?id=%1 [L,QSA]

静默地图

http://N.domain.com/about带或不带斜杠

到:

http://domain.com/folder/about.php?id=N

对于永久和可见的重定向,替换[L,QSA][L,R=301,QSA]

于 2013-02-12T10:42:56.203 回答