3

サイトのサブドメインを作成しました。サブドメインは、ルート上のフォルダーを指しています。

何らかの理由で、次の書き換えルールが機能しません。2 つのセグメント URL が機能しています。1 つが機能しておらず、2 つ以上が機能していません。以下の URL を参照してください。

  • subdomain.domain.com/register(動作していません)
  • subdomain.domain.com/temp/register(働く)

動的に作成された 2 つのセグメントがある場合、それらは機能しません。

  • subdomain.domain.com/dynamic1/dynamic2(動作していません)

.

Options +FollowSymlinks
RewriteEngine   On
RewriteBase     /
RewriteCond     %{HTTPS} on
RewriteRule     (.*) http://%{HTTP_HOST}%{REQUEST_URI}

#FOR REPLACING .HTML EXTENSION (WORKS FINE)
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}\.html -f
RewriteRule     ^(.*)$ $1.html

#FOR REPLACING .PHP EXTENSION (NOT WORKING)
RewriteRule     ^([a-zA-Z0-9_-]+)$ $1.php
RewriteRule     ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1.php

この質問が分からなかったら教えてください。

4

1 に答える 1

2

Michael Berkowsk が示唆するLように、ルールの最後にフラグを追加して、ルールが適用されたときに書き換えを終了することをお勧めします。それ以外に、あなたが持っている 2 セグメント ルールは最初のものだけを後方参照として使用していますが、両方を使用したいと思いますか? ルールを次のように変更してみてください。

Options +FollowSymlinks
RewriteEngine   On
RewriteBase     /

# the HTTP redirect
RewriteCond     %{HTTPS} on
RewriteRule     (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R]

#FOR REPLACING .HTML EXTENSION (WORKS FINE)
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}\.html -f
RewriteRule     ^(.*)$ $1.html [L]

#FOR REPLACING .PHP EXTENSION 
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteCond     %{REQUEST_FILENAME}\.php -f
RewriteRule     ^(.*)$ $1.php [L]

RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ location.php?li_id=$1&lid=$2 [L]
于 2012-12-18T20:25:07.660 に答える