2013-02-04 32 views
0

我最近買了一個網站的PHP腳本。在首頁上,每當我點擊登錄,或註冊或任何其他鏈接,我得到一個404錯誤(頁面未找到)我的基於PHP的網站似乎有所有損壞的鏈接

的鏈接類型:http://domain.com/loginhttp://domain.com/register,等等,但是當我檢查的文件管理器,我發現沒有命名的文件夾登錄或註冊等反而有像login.phpregister.php等文件。因此,當我將鏈接重命名爲http://domain.com/login.php/register.php等時,它的工作原理!

除了編輯所有文件中的鏈接外,是否有解決此問題的方法?也許可以通過更改.htaccess文件來完成。

P.S .:我使用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> 
+0

你可能想看看到的.htaccess和或你的Apache配置(mod_rewrite的) – Najzero

+0

聽起來一個'mod_rewrite'問題。它是否安裝?是否存在相應的「.htaccess」? –

+0

[使用mod \ _rewrite刪除.php擴展名]可能的副本(http://stackoverflow.com/questions/4908122/removing-the-php-extension-with-mod-rewrite) –

回答

1

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.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] 
+1

+1好吧,最後一個真實的答案。 –

+0

謝謝,但它似乎沒有工作。你可以檢查我的更新嗎? – misteeque

+0

沒有在你的.htaccess的地方,我看到我在這裏建議的代碼。 – anubhava