为什么我无法将 .htaccess 文件的内容移动到我的虚拟主机中?

dan*_*007 2 wordpress apache2

我的 Wordpress 网站有一个包含此内容的 .htaccess 文件。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud)

我将此内容移动到我站点的 Apache 虚拟主机中(如下)并删除了 htaccess 文件。

<VirtualHost *:80>
ServerName 68.183.153.223
DocumentRoot /home/david/wordpressWebSite

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试重新启动 Apache 时,Apache 输出错误。

RewriteBase: only valid in per-directory config files
Action 'restart' failed.
Run Code Online (Sandbox Code Playgroud)

我认为 htaccess 文件内容可以移动到虚拟主机。什么是歪?

Woo*_*ble 5

根据文档RewriteBase“为每个目录重写设置基本 URL”。

由于您没有设置每个目录的重写,因此该指令在特定目录的 .htaccess 文件之外毫无意义。

  • 使用 `%{REQUEST_URI}` 而不是 `%{REQUEST_FILENAME}` 可能就是你要找的。 (2认同)