我的重写htaccess有问题。我已经在我的localhost上使用了htaccess,它可以运行。但为什么它在我的网站上失败了呢?
这是我的htaccess代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule api/(.*)/(.*)$ api/$1.php?request=$2 [QSA,NC,L]
</IfModule>
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Index...
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
我尝试访问http://www.mywebsite.com/admin/index
或http://www.mywebsite.com/admin/index/
并且找不到所说的页面。我只是想将网址的最后一部分上的索引删除为http://www.mywebsite.com/admin/
我在我的localhost上使用了那个htaccess代码,并且它的成功..为什么它在我的服务器上失败了?
非常感谢
答案 0 :(得分:1)
这样做:
Options -MultiViews
RewriteEngine On
# Handle Index...
RewriteCond %{THE_REQUEST} /index[?\s] [NC]
RewriteRule ^(.*?)index$ /$1 [L,R=302,NC,NE]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^api/([^/]+)/(.*)$ api/$1.php?request=$2 [QSA,NC,L]
# Handle Front Controller...
RewriteRule ^ index.php [L]