简体   繁体   中英

Why doesn't this .htaccess work?

I have setup 'dokuwiki' to my Server.
It's stored in /usr/share/wiki folder.
So the path is /usr/share/wiki/doku.php

When I access to http://example.com/wiki/start , I get 404 Not found.

What's wrong with my .htaccess?
I doubt if there's something wrong with 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

etc/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>
#Fix Rewrite
Options -Multiviews


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

or use line below at last

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

sorry for delay..

Is it working properly on your localhost?

If yes you have to modify the .htaccess according to your hosting server.

because many times the hosting servers may hosts more than one sites. And they are having different .htacces accordingly.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM