[英]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.