2013-09-21 70 views
0

简单的URL重写从链接 删除扩展名为.php我使用.htaccess文件URL重写-.htaccess

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

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC] 
RewriteRule^%1 [R=301,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+?)/?$ /$1.php [L] 

下面的代码托管服务器上面的mod_rewrite代码上上传网站后引领页,因为我需要以下链接...

domain.com/abc/index 
domain.com/abc/about 
domain.com/abc/services 
domain.com/abc/rates 
domain.com/abc/contact#main 

但显示(404页未找到错误)这些页面即不显示像的index.php,about.php,服务的具体页面.PHP ,rates.php和contact.php#main ....等

任何人都可以让我知道我失踪了吗?作为在网页上的菜单链接像

<ul class="nav"> <li><a href="index.php">Home</a></li> <li><a href="about.php">About</a></li> <li><a href="services.php">Services</a></li> <li><a href="rates.php">Rates</a></li> <li><a href="contact.php#main">Contact Us</a></li> </ul>

我应该做的这些菜单链接太多的东西吗?

public_html/*.php 

要:

+0

。 htaccess正在位于网站目录的文档根目录下,并且是!页面没有显示...,因为MENU LINKS页面的物理路径是正确的。 –

+0

托管服务器上的目录和文件顺序就像'public_html/.htaccess,public_html/index.php,public_html/about.php,public_html/services.php,public_html/rates.php,public_html/contact.php,public_html/css /,public_html/js /,public_html/images /' –

+0

是的!当我通过点击索引页面的菜单链接访问'http://yourdomain.com/about.php'页面...它将我发送到'http://yourdomain.com/about',但它显示我没有什么和404错误信息显示。 –

回答

4

请将您.php文件

public_html/gta/*.php 

什么情况是,你所访问:

http://domain.com/gta/about 

并尝试找到.php文件at:

http://domain.com/gta/about.php 

但是,从你告诉我的文件是在上一个文件夹,所以它只是正确的,它会给你一个404错误。

鉴于所有文件都gta.htaccess可你到底有没有该文件夹,但需要在public_html文件夹和不应该有.htaccessgta文件夹内:

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

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC] 
RewriteRule^%1 [R=301,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

感谢您的所有努力和时间!Prix –

+0

@marafa做到了吗? – Prix

+0

它的全部完成...感谢上帝.. :) –