0

我最近购买了一个网站的 PHP 脚本。在首页,每当我点击登录、注册或任何其他链接时,我都会收到404 错误(找不到页面)

链接的类型为: http://domain.com/login, http://domain.com/register, 等等,但是当我检查文件管理器时,我发现没有名为 login 或 register 等的文件夹。相反,有诸如此类的login.php文件register.php。因此,当我将链接重命名为http://domain.com/login.phpor/register.php等​​时,它可以工作!

除了编辑所有文件中的链接之外,有没有办法解决这个问题?也许可以通过更改.htaccess文件来完成某些事情。

PS:我用cpanel。

我检查了我的.htaccess文件并发现了这个(我需要在那里编辑什么吗?):

options -multiviews
<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /
RewriteRule ^users$ users.php
RewriteRule ^login$ login.php
RewriteRule ^logout$ logout.php
RewriteRule ^conversations/([^/.]*)?$ conversations.php?u=$1&%{QUERY_STRING}
</IfModule>
<IfModule mod_security.c> 
# Turn off mod_security filtering. 
SecFilterEngine Off 
# The below probably isn't needed, 
# but better safe than sorry. 
SecFilterScanPOST Off 
</IfModule>
4

2 回答 2

1

您需要使用.htaccess文件重写 URL 以删除 .php 扩展名并将流量重定向到正确的脚本。

有关更多详细信息,请参阅Stack Overflow 问题Remove .php extension with .htaccess的答案。

于 2013-02-04T13:28:13.510 回答
1

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## Internally forward /dir/foo to /dir/foo.php
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
于 2013-02-04T15:05:59.560 回答