.php扩展名的.htaccess URL重写帮助

.php扩展名的.htaccess URL重写帮助,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我是新的和初学者的网址重写。。。 我需要删除这些页面菜单链接的.php扩展名 <ul class="nav"> <li><a href="index.php">Home</a></li> <li><a href="about.php">About</a></li> <li><a href="services.php">Servic

我是新的和初学者的网址重写。。。 我需要删除这些页面菜单链接的.php扩展名

<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>

localhost/websitename/index

localhost/websitename/about.php

localhost/websitename/about

localhost/websitename/services.php

localhost/websitename/services

localhost/websitename/rates.php

localhost/websitename/rates

localhost/websitename/contact.php#main

localhost/websitename/contact main

但是下面的重写规则显示的结果如下

localhost/websitename/services.php
localhost/services
。。。。。。。。。。。错误:找不到页面 . . . . . 等等等等

我做错了什么?
如何实现这个简单的URL重写?

看起来您只是缺少磁盘上文件的部分路径:

  RewriteRule ^([^\.]+)$ websitename/$1.php

看起来您只是缺少磁盘上文件的部分路径:

  RewriteRule ^([^\.]+)$ websitename/$1.php

要隐藏
.php
扩展名,请将代码替换为以下内容:

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}/gta/$1.php -f
RewriteRule ^(.+?)/?$ /gta/$1.php [L]

要隐藏
.php
扩展名,请将代码替换为以下内容:

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}/gta/$1.php -f
RewriteRule ^(.+?)/?$ /gta/$1.php [L]

谢谢这正是我所需要的。我已经检查了托管服务器。。。正在播放[链接][link]谢谢!这正是我所需要的。我已经检查了托管服务器。。。其显示()但(404页未找到错误)。你能再让我知道我错过了什么吗?因为网页上的菜单链接与我之前在文章中提到的相同,比如
      • !我错过了什么。。。有什么想法吗?.htaccess位于网站目录的文档根目录上,是的!页面未显示。。。因为菜单链接上页面的物理路径是正确的。托管服务器上的目录和文件顺序类似于
        public\u html/.htaccess、public\u html/index.php、public\u html/about.php、public\u html/s‌​php,public_html/rates.php,public_html/contact.php,public_html/css/,public‌​_html/js/,public_html/images/
        当我通过点击索引页面的菜单链接访问页面
        yourdomain.com/about.php
        。。。它将我发送到
        yourdomain.com/about
        ,但它没有显示任何内容,并且显示simply404页面未找到错误消息。谢谢!这正是我所需要的。我已经检查了托管服务器。。。正在播放[链接][link]谢谢!这正是我所需要的。我已经检查了托管服务器。。。其显示()但(404页未找到错误)。你能再让我知道我错过了什么吗?因为网页上的菜单链接与我之前在文章中提到的相同,比如
            • !我错过了什么。。。有什么想法吗?.htaccess位于网站目录的文档根目录上,是的!页面未显示。。。因为菜单链接上页面的物理路径是正确的。托管服务器上的目录和文件顺序类似于
              public\u html/.htaccess、public\u html/index.php、public\u html/about.php、public\u html/s‌​php,public_html/rates.php,public_html/contact.php,public_html/css/,public‌​_html/js/,public_html/images/
              当我通过点击索引页面的菜单链接访问页面
              yourdomain.com/about.php
              。。。它将我发送到
              yourdomain.com/about
              ,但它不显示任何内容,并且显示simply404页面未找到错误消息。