这是针对基本的HTML / PHP页面,没有查询字符串等。我搜索了高低,找到了从URI中删除'index.php'的资源,或删除'.php'和其他文件扩展名..甚至添加一个尾部斜杠。但是,每当我尝试全部使用它们,或者使用我找到的示例时,我都会收到500服务器错误。
我可以在一个页面上传递查询字符串,但实际上我只想从索引页面中删除“index.php”并使所有子页面都没有文件扩展名。所以,像这样:
domain.com/index.php到domain.com/ domain.com/page1.php到domain.com/page1/ domain.com/page2.php到domain.com/page2/ domain.com/page3.php到domain.com/page3 /
我能找到的所有例子都集中在CMS等等。查询字符串等等。没有什么只关注基本URI,我认为这可能是导致错误的原因。
任何帮助表示赞赏!! 感谢
答案 0 :(得分:5)
我从一个论坛上的一个相当有帮助的小伙伴那里得到了这个 - 从来没有完全理解它,并且有一个警告;除非请求是目录,否则它意味着否尾部斜杠。
然而,我认为值得张贴 - 那里的古茹可能很容易发现修复!?
# remove .php; use THE_REQUEST to prevent infinite loops
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]
# remove index
RewriteRule (.*)index$ $1 [R=301]
# remove slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]
# add .php to access file, but don't redirect
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
答案 1 :(得分:0)
您可以在htaccess文件中尝试:
Options +MultiViews
但这取决于您的网络服务器是否启用了它。另外,请注意htaccess文件特定于Apache Web服务器,因此如果您使用其他内容,它将无法工作。