2014-12-05 82 views
0

我目前正在从用于centos的parallels plesk移至用于windows的parallels plesk。我碰到的唯一障碍是我意识到.htaccess将不再工作。 这里是我的.htaccess:将.htaccess转换为web.config

options -indexes +FollowSymLinks 
RewriteEngine on 


RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

RewriteRule ^(verify)/(.*)/([a-zA-Z0-9_-]+)$ validate_account.php?usr=$3&hash=$4 [QSA,L] 
RewriteRule ^(post)/([a-zA-Z0-9_-]+)$ news.php?post=$2 [NC,QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^uploads/avatars/(.+)$ ../uploads/avatars/$1 [L,NC] 

Redirect 301 /signup /register 

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [R=301,L] 

errordocument 404 /404.php 
errordocument 403 /404.php 
errordocument 500 /404.php 

allow from all 
#deny from all 
#allow from 98.115.168.25 
deny from 162.144.91.203 #attempted brute force 
deny from 74.208.100.64 #attempted brute force 
deny from 185.57.82.25 #tried to ddos 

这里是我与网站产生的web.config中:

<rule name="rule 1F"> 
    <match url="^(.*)$" /> 
    <action type="Rewrite" url="/{R:1}.php" /> 
</rule> 
<rule name="rule 2F" stopProcessing="true"> 
    <match url="^(verify)/(.*)/([a-zA-Z0-9_-]+)$" /> 
    <action type="Rewrite" url="/validate_account.php?usr={R:3}&amp;hash={R:4}" appendQueryString="true" /> 
</rule> 
<rule name="rule 3F" stopProcessing="true"> 
    <match url="^(post)/([a-zA-Z0-9_-]+)$" ignoreCase="true" /> 
    <action type="Rewrite" url="/news.php?post={R:2}" appendQueryString="true" /> 
</rule> 
<rule name="rule 4F" stopProcessing="true"> 
    <match url="^uploads/avatars/(.+)$" ignoreCase="true" /> 
    <action type="Rewrite" url="/../uploads/avatars/{R:1}" /> 
</rule> 
<rule name="rule 5F"> 
    <match url="(.*)" /> 
    <action type="Rewrite" url="/https://%{HTTP_HOST}%{REQUEST_URI}" /> 
</rule> 
<rule name="rule 6F" stopProcessing="true"> 
    <match url="^" /> 
    <action type="Rewrite" url="/http://%1%{REQUEST_URI}" /> 
</rule> 

它给了我500内部服务器错误,每当我尝试访问该网站,任何帮助将不胜感激。

回答

0

试试这个,让我知道

<rule name="rule 1X"> 
     <match url="^(.*)$" /> 
     <action type="Rewrite" url="/{R:1}.php" /> 
    </rule> 
    <rule name="rule 2X" stopProcessing="true"> 
     <match url="^(verify)/(.*)/([a-zA-Z0-9_-]+)$" /> 
     <action type="Rewrite" url="/validate_account.php?usr={R:3}&amp;hash={R:4}" appendQueryString="true" /> 
    </rule> 
    <rule name="rule 3X" stopProcessing="true"> 
     <match url="^(post)/([a-zA-Z0-9_-]+)$" ignoreCase="true" /> 
     <action type="Rewrite" url="/news.php?post={R:2}" appendQueryString="true" /> 
    </rule> 
    <rule name="rule 4X" stopProcessing="true"> 
     <match url="^uploads/avatars/(.+)$" ignoreCase="true" /> 
     <action type="Rewrite" url="/../uploads/avatars/{R:1}" /> 
    </rule> 
    <rule name="rule 5X"> 
     <match url="(.*)" /> 
     <action type="Rewrite" url="/https://%{HTTP_HOST}%{REQUEST_URI}" /> 
    </rule> 
    <rule name="rule 6X" stopProcessing="true"> 
     <match url="^" /> 
     <action type="Rewrite" url="/http://%1%{REQUEST_URI}" /> 
    </rule> 
+0

会回应: HTTP错误500.50 - URL重写模块错误。 由于发生内部服务器错误,无法显示页面。 详细错误信息 模块\t RewriteModule 通知\t的BeginRequest 处理程序\t StaticFile 错误代码\t 0x800700a1 请求的URL \t http://domain.com:80/ 物理路径\t C:\的Inetpub \虚拟主机\ domain.com \ httpdocs 登录方法\t尚未确定 登录用户\t尚未确定 – Steve 2014-12-05 06:20:07

+0

您是否安装了IIS URL重写模块? – 2016-08-29 17:03:40