【发布时间】:2015-01-14 06:23:20
【问题描述】:
我之前用过其他主机,一切正常,但现在我已经将其更改为新主机。在新主机上安装了 apache 2.4。
我有以下规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^/?(.*) http://%1/$1 [L,R=permanent]
RewriteRule manage/ajax/(.*?)$ manage/ajax/index.php [QSA,L]
RewriteRule manage/json/(.*?)$ manage/json/index.php [QSA,L]
RewriteCond %{REQUEST_URI} !\.(.+)$
RewriteRule ckfinder/(.*?)$ ckfinder/index.html [QSA,L]
RewriteCond %{REQUEST_URI} !\.(.+)$
RewriteRule manage/(.*?)/$ manage/index.php [QSA,L]
RewriteCond %{REQUEST_URI} !\.(.+)$
RewriteRule ajax/(.+?) ajax/index.php [QSA,L]
RewriteCond %{REQUEST_URI} !\.(.+)$
RewriteRule api/(.*?) /api/index.php [QSA,L]
RewriteCond %{REQUEST_URI} !\.(.+)$
RewriteRule (.*) index.php
</IfModule>
当我尝试访问例如 /manage/ 时,它会显示索引页面,但如果我将一些额外的数据添加到路径中,它将显示我需要的内容。例如:/manage/some_data - 可以正常工作。但我想通过 /manage/ 访问正确的目录。
【问题讨论】:
-
只需在 .htaccess 顶部使用
DirectoryIndex index.php -
谢谢,这解决了我的问题。
-
不客气,很高兴它有帮助。
标签: apache .htaccess mod-rewrite apache2 apache2.4