mod用多个参数重写



我正在尝试设置一个重写规则,以便任何文本代替子域的任何文本将是参数一,第一个前向斜线之后的任何文本将是参数二,但我正在努力与REGEX和不确定重写术语的不确定。

例如,如果有人要求:

joebloggs.mydomain.com

我希望他们看到:

mydomain.com/index.php?site=joebloggs

另外,如果有人要求:

joebloggs.mydomain.com/contact

我希望他们看到:

mydomain.com/index.php?site=joebloggs&page=contact

"见"是指查看页面,而不是看到URL - 它是一个类似CMS的项目,因此您可以看到我要去的地方。另外,我已经计算出如何删除www。所以这不是问题:)


编辑

电流.htaccess是:

RewriteEngine On
# Remove trailing slash
RewriteRule ^(.+)/$ $1 [L]
# Remove www
RewriteCond %{HTTP_HOST} ^www.richardmjenkins.com$ [NC]
RewriteRule ^(.*)$ http://richardmjenkins.com/$1 [R=301,L]
# Rewrite for site/page pair
RewriteCond %{HTTP_HOST} ^(.*).richardmjenkins.com$ [NC]
RewriteCond %{REQUEST_URI} !p.php
RewriteRule ^(.+/)?([^/]*)$ p.php?s=%1&p=$2 [QSA,L,NC]
RewriteCond %{HTTP_HOST} ^(.*).richardmjenkins.com$ [NC]
RewriteCond %{REQUEST_URI} !p.php
RewriteRule ^$ p.php?s=%1 [QSA,L,NC]

1。在主机面板中:添加一个带有名称的子域: * for enable enable所有子域

2。这是您的htaccess代码:

RewriteEngine On
Options +Followsymlinks
RewriteCond %{HTTP_HOST} ^(.*).mydomain.com$ [NC]
RewriteRule ^$ index.php?site=%1 [QSA,L,NC]
RewriteCond %{HTTP_HOST} ^(.*).mydomain.com$ [NC]
RewriteRule ^([^/]+)/?$ index.php?site=%1&page=$1 [QSA,L,NC]

通过 httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess下的CC_3中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+).(mydomain.com)$ [NC]
RewriteRule ^$ index.php?site=%1 [L,QSA]
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+).(mydomain.com)$ [NC]
RewriteRule ^(.+)$ index.php?site=%1&page=%2 [L,QSA]

最新更新