因为我已将.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]
答案 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]