1

現在、Drupalがインストールされているサイトがあり、クリーンURLがあるため、.htaccessファイルには次のものが含まれています。

RewriteRule ^ index.php [L]

これに加えて、静的なhtmlページを公開し、クリーンURLも使用できるようにしたいと考えています。コンテンツなどの特定のキーワードを追加し、おそらく以下のようなものを追加することで、それらをdrupalページと区別することを考えていました(これが機能するかどうかはわかりません)-www.domainname.com/nice-holidayのようなURLを取得して翻訳しますdomainname.com/ftp/pages/nice-holiday.htmlへ

RewriteRule   ^content/(.+)$   domainname.com/ftp/pages/$1.html   [L]

問題は、最初のルールがすべてのリクエストに対して実行しようとすることです。より一般的なルールの前に、より具体的なルールを配置しようとしましたが、それでも機能しません。条件に基づいて2つのmod書き換えルールをどのように設定できますか?たとえば、特定の単語の存在?より一般的には、1つのWebサイトでCMSと静的ページを処理した経験のある人はいますか?それとも問題を抱えているのでしょうか?

4

1 に答える 1

0

ここでRewriteCondが役に立ちます。

# make sure no rewriting is done for requests without www
RewriteCond %{HTTP_HOST} !^domainname\.com
RewriteCond %{REQUEST_URI} !^/?content/
RewriteRule ^ index.php [L]

# later on...
# don't want this rule to apply for non-www requests either
RewriteCond %{HTTP_HOST} !^domainname\.com
RewriteRule ^/?content/(.+)$ http://domainname.com/ftp/pages/$1.html [L]

これがあなたの目的だと思いますか?wwwのことを実際に気にしない場合は、%{HTTP_HOST}条件を完全に排除できます。drupal rewriteの条件を維持している限り、2つのルールは共存できます%{REQUEST_URI}。したがって、drupal rewriteは、/content/プレフィックスで始まるURIには明示的に適用されません。

于 2012-10-08T00:27:31.470 に答える