我正在尝试设置一个重写规则,以便任何代替子域的文本都将是参数一,而第一个正斜杠之后的任何文本都将是参数二,但我正在努力使用正则表达式并且不确定重写术语。
例如,如果有人要求:
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]