1

作为一名经验丰富的 Web 开发人员,我感觉自己像个白痴一样发布此信息。不知何故,我往往有问题.htaccess。我正在尝试使用以下命令将所有请求路由/wiki到我的 index.php...

RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ./ /index.php [L]

虚拟主机:

<VirtualHost *:80>
        ServerName mysite.local
        DocumentRoot "/var/www/mysite/public_html"
        <Directory "/var/www/mysite/public_html">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

我正在尝试访问http://mysite.local/wiki/asdf并收到 404 错误。

Apache 的错误日志什么也没显示

4

3 回答 3

0

如果是根文件/wiki夹中的现有文件夹,并且您的文件在该文件夹中,那么您可以尝试以下操作:public_htmlindex.phpwiki

RewriteEngine On
RewriteBase /wiki
RewriteRule index\.php - [F,L]
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule .* index.php [L]

如果该wiki文件夹不存在,并且您正在根目录下完成所有工作:

RewriteEngine On
RewriteBase /
RewriteRule index\.php - [F,L]
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule wiki/(.*) index.php/$1 [L]
于 2013-04-04T04:59:01.447 回答
0

现在试试这个!将不存在/wiki/wiki/和重写/wiki/$var/index.php

RewriteCond %{REQUEST_URI} ^/wiki/?
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php
于 2013-04-04T06:58:17.313 回答
0

我最终需要 Yii 框架使用的东西......

RewriteEngine On

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php
于 2013-04-04T21:43:47.500 回答