URL Rewrite -.htaccess

Простая перезапись URL для удаления расширений .php из ссылок, которые я использую в коде .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} ^[AZ]{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 Page Not Found ERROR) для этих страниц, т. е. не показывать точные страницы, такие как index.php, about.php, services.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>

Должен ли я что-то делать с этими ссылками меню?

Переместите ваши .php файлы с:

 public_html/*.php 

Для того, чтобы:

 public_html/gta/*.php 

Случается, что вы получаете доступ:

 http://domain.com/gta/about 

И он пытается найти файл .php адресу:

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

Но из того, что вы сказали мне, файлы находятся в предыдущей папке, так что это правильно, это даст вам ошибку 404.

Учитывая, что все файлы находятся в папке gta вы .htaccess могут быть тем, что у вас есть, но должны находиться в папке public_html и не должно быть НЕТ .htaccess в папке gta :

 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} ^[AZ]{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]