我浏览过许多问题/答案,但找不到解决这个问题的方法。我的重写正在发挥作用(大部分)。
以下工作完全没有问题:
- url.com/almostAnything
- url.com/almostAnything/else/can/be/sent/to/etc/etc/
- url.com/index.
- url.com/index./
然而这并不起作用。
- url.com/index
- url.com/index/
使用 /index 或 /index/ 我收到 404 错误。
当前.htaccess文件如下:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
我也尝试过:
RewriteRule ^ index.php [L]
似乎我在 .htaccess 文件之前遇到了一些问题,我不确定该去哪里找。抱歉,如果这是一个看似基本的问题,这似乎应该是一个非常简单的问题,我只是似乎找不到它。
可能相关的apache2.conf:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
此外,该网站托管在 /var/www/html/subfolder 中,并且有一个虚拟主机直接指向子文件夹,因此可以通过 url.com 访问
答案1
我终于找到了自己的解决方案。万一其他人来这里寻找……
我必须编辑 virtualhost.conf 文件中的虚拟主机设置。
选项索引 FollowSymLinks MultiViews
删除最后的“MultiViews”并且它起作用了。
更改自:
<Directory /var/www/html/elim/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
到:
<Directory /var/www/html/elim/public/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>