doutucui0133 2016-04-25 15:47
浏览 47
已采纳

.htaccess无法正常工作 - 从URL中删除.php文件扩展名

I'm having trouble removing the .php file extensions from URLs using the .htaccess file.

Previously, all pages were HTML and I had successfully rewritten URLs to drop the .html extensions, but it just doesn't seem to be working for .php — I'm just getting 404 errors.

.htaccess Contents

ErrorDocument 404 http://www.brianglassmandesign.com/404.php

RewriteEngine on
RewriteCond %{HTTP_HOST} ^brianglassmandesign.com [NC]
RewriteRule ^(.*)$ http://www.brianglassmandesign.com/$1 [L,R=301,NC]

# Remove file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
  • 写回答

1条回答 默认 最新

  • duanquannan0593 2016-04-25 17:17
    关注

    There is no reason as to why the files are not being picked up, giving consideration to the fact that the only change you made was the extension. As such, I recommend that you double-check to see if the file being requested actually exists, and has been renamed from the old .html equivalent.

    The only .htaccess suggestion I can offer that is an alternative to what you have is the following:

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule (.+) $1.php [L]
    

    This means that the rewrite will only occur if the file exists. So, if you request /something and /something.php exists on the file-system, then it will be served accordingly.

    Failing which, you'll need to check the relevant logs to determine what the problem may be.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?