2016-03-20 8 views
0

私の.htaccessファイルは、次のようになります。私の.htaccessがmod_rewriteで私に500のエラーを出すのはなぜですか?

<FilesMatch ".(eot|ttf|otf|woff|svg)"> 
Header set Access-Control-Allow-Origin "*" 
</FilesMatch> 

ErrorDocument 400 /errors/400.php 
ErrorDocument 401 /errors/401.php 
ErrorDocument 403 /errors/403.php 
ErrorDocument 404 /errors/404.php 
ErrorDocument 500 /errors/500.php 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+?)/$ /$1 [R=302,L,NE] 

RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302,NE] 

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE] 

RewriteCond %{THE_REQUEST} \ /(.+)\.php 
RewriteRule^/%1 [L,R=302,NE] 

RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} ^(.*?)\.(www\.)?domain\.com$ [NC] 
RewriteRule ^.*$ https://www.domain.com/page?user=%1 [L,QSA,R=302,NE] 

***THIS IS WHERE I INSERT THE NEW RULE*** 

RewriteRule ^([^/]*)-([0-9]+)\.html$ product?name=$1&product_id=$2 [L,QSA] 

をこれまでのところは良いです。それはすべて動作します。たとえば、scoobydoo.domain.comに行くと、domain.com/page?user=scoobydooにリダイレクトされます。今、私はまた、誰かがwww.domain.com/scoobydooに行くとき、彼らは本当にdomain.com/page?user=scoobydooを示しているように、ページをマスクにしたいので、私はこの追加:私はしかし、第二の最後の行にこれを追加すると

RewriteRule ^([^/]*)$ /page?user=$1 [L] 

、そうでありません作業。

ここで何が間違っていますか?

+0

うん!それは確かに動作します... – user1996496

答えて

2

あなたのルールはOKですが、あなたはそれからあなたの本当のファイルとのdirsを除外する必要があります。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)$ /page?user=$1 [L,QSA] 
+0

それは私に500エラーを与えてくれることを奇妙に思っています:(現在のルールを上下に動かしてみようとしています... – user1996496

+0

@ num8er - OPはサブドメイン→ページルールが働くと述べていますのでmod_rewrite有効になっています... –

+0

奇妙なことですが、他のルールが間違っていることがあります。 – user1996496

関連する問題