我正面临着一个非常奇怪的行为.htaccess。每当我尝试访问由mod_rewrite重写的链接时,我的.htaccess都会引用根目录而不是我工作的子目录。我的文件夹结构如下所示:
htdocs/
blog6/
.htaccess
我的.htaccess看起来像那样:
Options +FollowSymLinks -MultiViews
ErrorDocument 401 /core/error/401.php
ErrorDocument 403 /core/error/403.php
ErrorDocument 404 /core/error/404.php
ErrorDocument 500 /core/error/500.html
RewriteEngine on
RewriteBase /blog6/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?page=$1 [L]
但是每当我尝试通过重写的URL访问文件时,我都会收到404错误并且日志显示:
C:/xampp/htdocs/index.php' not found or unable to stat
所以看起来我的.htaccess想要访问htdocs中的文件而不是使用子目录。当我在我的rewriteRule中写/blog6
时,一切正常,但为什么RewriteBase不能正常工作?如果它很重要,我会在我的HTML
<base>
答案 0 :(得分:1)
RewriteBase
仅在您提供RewriteRule
目标中的相对网址时才有效,因此请将代码更改为:
Options +FollowSymLinks -MultiViews
ErrorDocument 401 /core/error/401.php
ErrorDocument 403 /core/error/403.php
ErrorDocument 404 /core/error/404.php
ErrorDocument 500 /core/error/500.html
RewriteEngine on
RewriteBase /blog6/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?page=$1 [L,QSA]