应用htaccess后,管理面板无法正常工作

时间:2014-02-05 11:07:36

标签: apache .htaccess mod-rewrite

因为我已将.htaccess应用于我的文件夹以删除php扩展

我的管理面板名称​​ nimda ,如http://www.xyz.com/nimda无效。

显示此错误消息

  

未找到

在此服务器上找不到请求的网址。

该怎么做。

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ xyz.com/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ xyz.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L]

1 个答案:

答案 0 :(得分:0)

那是因为你的htaccess规则的最后一部分是将它转换为一个不存在的文件。

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L]

该规则是在没有.php的情况下将其添加到文件中,因此您的URL管理链接将被写为http://www.xyz.com/nimda.php,但不存在,因此找不到404。

我不确定你打算用你的规则完成什么,但如果你想用你的htaccess这样你可以排除这样的管理目录。

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ /$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ xyz.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteCond %{REQUEST_URI} !^/nimda [NC]
RewriteRule ^([^/.]+)$ $1.php [L]