1

サブドメインの代わりにあるテキストがパラメーター 1 になり、最初のスラッシュの後のテキストがパラメーター 2 になるように書き換えルールを設定しようとしていますが、正規表現に苦労しており、書き換え用語について確信が持てません。

たとえば、誰かが要求した場合:

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]
4

2 に答える 2

0

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

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]
于 2012-11-02T12:44:07.910 に答える
0

1.ホスト パネルで : サブドメインを名前で追加します :*すべてのサブドメインを有効にします

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]
于 2012-11-02T12:41:43.740 に答える