我是服务器配置的新手,并且在使用htaccess配置时遇到了一些困难。我正在使用这个htaccess来在没有.php扩展名的情况下工作,同时如果用户在最后输入.php,它也会删除那部分并显示更清晰的url。在最后一节,我的错误处理与error.phphtaccess配置删除目录结构的扩展
RewriteEngine On
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.com/$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php
每一件事情适用于在根页面大,如
example.com/contact
但事情在文件夹内部变得复杂,如
example.com/photo/views
在这里,而不是显示“/photo/views.php”,我得到404页面未找到并看到我的错误页面。
但我可以在照片目录下看到索引页面。
example.com/photo/
但还是得到
example.com/photo/index
错误页面,如果我删除.htaccess文件的一切最后以.php扩展名正常工作。
如果有人能告诉我我做错了什么,我会很高兴。