为什么这个.htaccess不起作用?

时间:2013-01-08 06:22:53

标签: .htaccess unix

我已将'dokuwiki'设置为我的服务器 它存储在/usr/share/wiki文件夹中 所以路径是/usr/share/wiki/doku.php

当我访问http://example.com/wiki/start时,我找不到404。

我的.htaccess出了什么问题?
我怀疑 RewriteBase

是否有问题

的.htaccess

## Enable this to restrict editing to logged in users only
 
## You should disable Indexes and MultiViews either here or in the
## global config. Symlinks maybe needed for URL rewriting.
#Options -Indexes -MultiViews +FollowSymLinks
 
## make sure nobody gets the htaccess files
<Files ~ "^[\._]ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
 
## Uncomment these rules if you want to have nice URLs using
## $conf['userewrite'] = 1 - not needed for rewrite mode 2
RewriteEngine on
#
## Not all installations will require the following line.  If you do,
## change "/dokuwiki" to the path to your dokuwiki directory relative
## to your document root.
RewriteBase /wiki
#
## If you enable DokuWikis XML-RPC interface, you should consider to
## restrict access to it over HTTPS only! Uncomment the following two
## rules if your server setup allows HTTPS.
RewriteCond % !=on
RewriteRule ^lib/exe/xmlrpc.php$      https://%% [L,R=301]

RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
RewriteRule ^$                        doku.php  [L]
RewriteCond %       !-f
RewriteCond %       !-d
RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
RewriteRule ^index.php$               doku.php

等/ httpd的/ conf.d

# enter the following in pico
Alias /wiki/ "/usr/share/wiki/"
Alias /wiki "/usr/share/wiki/"
<Directory "/usr/share/wiki/" >
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
  Deny from none

</Directory>

2 个答案:

答案 0 :(得分:1)

#Fix Rewrite
Options -Multiviews


# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

或最后使用下面的行

RewriteRule ^(.*)$ index.php/$1 [PT,L]  
抱歉拖延..

答案 1 :(得分:0)

它是否在您的localhost上正常运行?

如果是,则必须根据您的托管服务器修改 .htaccess

因为托管服务器很多次可能托管多个站点。而且他们有相应的 .htacces