.htaccess mod_rewrite在linux上工作正常,但在windows 10上返回禁止

dtcbnfnu  于 2022-11-16  发布在  Linux
关注(0)|答案(1)|浏览(125)

我正在和wampserver一起在windows10上进行本地开发。
在那之后,我让我的脚本活着,它工作得很好,但几天后,我实现了网址重写。
我的scipts在live服务器上工作正常。
现在,我想做一些更改,所以我把它作为本地开发,我得到了禁止我的本地主机。
这里是重写规则

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/([-\w]+)/(\d+)/([-\w]+)$ $1.php?cat_name=$2&vid=$3&vbiz_name=$4 [NC,L]
RewriteRule ^(.*)/([-\w]+)/(\d+)$ $1.php?cat_name=$2&page=$3 [NC,L]
RewriteRule ^(.*)/([-\w]+)$ $1.php?cat_name=$2 [NC,L]
RewriteRule ^(.*)/$ $1.php [NC,L]

# Error Documents
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ 404.php [L]

RewriteCond %{REQUEST_URI} ^/500/$
RewriteRule ^(.*)$ 500.php [L]
</IfModule>

这是我正在使用的虚拟主机详细信息。

<VirtualHost *:80>
    ServerName devproject
    DocumentRoot "g:/dev-project"
    <Directory  "g:/dev-project/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

索引页工作正常...
请帮帮我

a7qyws3x

a7qyws3x1#

已解决⋯
我刚加了一行

Options FollowSymLinks

紧接着

RewriteEngine on

它既适用于Windows,也适用于Linux,新规则如下所示

<IfModule mod_rewrite.c>
RewriteEngine on
Options FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/([-\w]+)/(\d+)/([-\w]+)$ $1.php?cat_name=$2&vid=$3&vbiz_name=$4 [NC,L]
RewriteRule ^(.*)/([-\w]+)/(\d+)$ $1.php?cat_name=$2&page=$3 [NC,L]
RewriteRule ^(.*)/([-\w]+)$ $1.php?cat_name=$2 [NC,L]
RewriteRule ^(.*)/$ $1.php [NC,L]

# Error Documents
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ 404.php [L]

RewriteCond %{REQUEST_URI} ^/500/$
RewriteRule ^(.*)$ 500.php [L]
</IfModule>

相关问题