簡體   English   中英

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

[英]mod_rewrite works fine on linux but returns forbidden on windows 10

我正在 windows 10 上使用 wampserver 進行本地開發。
之后,我使我的腳本生效並且運行良好,但幾天后我實現了 url 重寫。
我的 scipts 在實時服務器上運行良好。
現在我想做一些改變,所以我把它放在本地進行開發,我在我的本地主機上被禁止了。

這是重寫規則

<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>

索引頁面工作正常...
請幫幫我。。

解決...
我剛剛添加了新行

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM