0

私はすべての質問とApacheサーバーのreWriteRuleのすべての例を見てきました...何も機能していません。

http://beta.EXAMPLE.com/profile.php?profile_name=ntgCleanerhttp://beta.EXAMPLE.com/ntgCleanerに変更するだけです。

.htaccess ファイルが読み取られ、mod_rewrite が有効になっているかどうかを確認する必要があり、両方とも完全に正常に動作します。

何らかの理由で、私が遭遇した例は私にとってはうまくいきません。いくつかの例を次に示します。

RewriteEngine On
RewriteRule /(.*)$ /profile.php?username=$1 

RewriteEngine On 
RewriteBase /
RewriteRule ^profile\/(.*)$ ./profile.php?profileId=$1 [L,NC,QSA]

Options +FollowSymlinks
RewriteEngine on
RewriteOptions MaxRedirects=10
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?profile_name=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?profile_name=$1

しかし、これらのどれも機能しません。これは、サブドメインを使用しているためですか? 最終的には、サイトを完成させたときに、サブドメインを BETA から www だけに切り替える予定です。

何かアドバイス?

4

2 に答える 2

1

これを試して:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/?$ /profile.php?profile_name=$1 [L,QSA]

あなたの例にはさまざまなクエリ文字列が含まれているため、どれが本当に必要なのかわかりません。?username=?profileId=、があります?profile_name=

于 2012-08-10T18:20:27.897 に答える
0

条件(RewriteCond)を使用する必要があり、条件が満たされると、ルール(RewriteRule)が適用されます。したがって、条件を使用しない場合、エンジンはそれを何を使用するかを知らないため、ルールは使用されません。

RewriteCondは、RewriteRuleの前に使用する必要があります。私は、次の形式のWebボットに対して使用します。

RewriteCond %{REMOTE_HOST} .googlebot.com$ [NC,OR]
RewriteCond %{REMOTE_HOST} .search.msn.com$ [NC,OR]
RewriteCond %{REMOTE_HOST} .kimsufi.com$ [NC]
RewriteRule ^.*$ /errors/404.html [F]
于 2012-08-10T18:37:35.413 に答える