2016-11-13 50 views
1

我正在使用DokuWiki的网站上工作,该网站名为MiscWiki.htaccess删除URL中的字符串

目前所有的URL都是这种方式构造

http://www.miscwiki.org/doku.php/something/something 

我想通过.htaccess重写从URL中删除doku.php。我目前有这种说法,但它不起作用。

RewriteRule ^([^/]+)/doku.php/?(.*)$ /$1 [R=301,L] 

谢谢你对这个的帮助。

回答

1

您可以在网站根目录的.htaccess使用这些规则:

AcceptPathInfo On 
RewriteEngine On 

## Uncomment next 2 lines only when you want to remove doku.php/ from old links 
#RewriteCond %{THE_REQUEST} \s/+doku\.php/(\S*) [NC] 
#RewriteRule^/%1 [R=301,NE,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .+ doku.php/$0 [L] 
+0

这种运作良好,并回答了这个问题,但它会导致一个问题,我没有预测。现在具有旧网址结构的网站上的链接不起作用。有没有办法做到这一点,同时保留仍然包含doku.php的旧链接? – Todd

+0

什么是一些旧的链接不工作? – anubhava

+0

在miscwiki.org的主页上,蓝色链接现在不再起作用,我认为这是因为它们仍然包含doku.php。 – Todd