/etc/apache2/sites-available/default.conf内容为:

<Directory>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>


我启用了mod_rewrite

在/ var / www / sitename下
我有我的.htaccess文件,内容为:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]


但是,当访问localhost / sitename / directory时,出现404错误

我在这里想念什么?

最佳答案

尝试在第一个RewriteRule ^(directory)($|/) - [L]上方添加RewriteCond,这样它将从RewriteRule中排除该目录,您可以添加多个目录,方法是使用|分隔它们,例如RewriteRule ^(forum|extras)($|/) - [L]

这是一个例子:

RewriteEngine On
RewriteBase /

RewriteRule ^(directory)($|/) - [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

关于linux - .htaccess文件不适用于Apache,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20306219/

10-13 02:22