我在htaccess
文件中使用以下内容删除了文件中的.php
扩展名。它工作正常。
但是,我还希望利用ErrorDocument 404 /index.php
将任何不存在的网址重定向回主页。如果我在ErrorDocument 404 /index.php
中单独使用htaccess
,则重定向可以正常工作。此外,如果我使用下面的重写代码,它成功剥离了PHP扩展。但是,我希望这两者能够协同工作。
例如,如果用户输入“www.domain.com/register
”,则会转到www.domain.com/register.php
。但如果他们输入“www.domain.com/something
”,并且something.php
不存在,那么他们会重定向回index.php
。我已经在htaccess
中尝试了这两种方法的所有排列,但无济于事。任何帮助将不胜感激。
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
答案 0 :(得分:5)
不确定您遇到的问题究竟是什么,但如果我将规则更改为此,则对我有用:
ErrorDocument 404 /index.php
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
因此,不检查请求是否未访问存在的实际文件/目录,而是检查该文件的.php版本是否存在。