переписать мод из .php в подкаталог

#.htaccess #mod-rewrite #url-rewriting

#.htaccess #мод-перезаписать #url-переписывание

Вопрос:

Я хотел бы пересылать ссылки, такие как

https://server.com/checkAvailability Для https://server.com/api/checkAvailability.php

Я попробовал следующее в .htaccess, но это не сработало

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ ./api/$1.php [L]

 

Комментарии:

1. Ваши правила выглядят почти нормально. Просто поместите этот код в api/.htaccess и последняя строка должна быть RewriteRule ^(.*?)/?$ $1.php [L]

Ответ №1:

Не могли бы вы, пожалуйста, попробовать следующее, написанное и протестированное с вашими показанными примерами. Пожалуйста, убедитесь, что вы очистили кэш браузера перед тестированием URL-адресов.

 Options  FollowSymLinks -MultiViews
RewriteEngine ON
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*)/?$ api/$1.php [L]
 

Комментарии:

1. @ryanramsumair, не могли бы вы сообщить мне, какой пример / пример URL вы нажимаете и какую ошибку вы получаете?

2. я получаю ошибку 404 Not Found при попытке доступа server.com/checkAvailability и файл находится на server.com/api/checkAvailability.php

3. @ryanramsumair, хорошо, не могли бы вы попробовать изменить правило С RewriteCond %{DOCUMENT_ROOT}/$1.php -f НА RewriteCond %{REQUEST_FILENAME}/$1.php -f один раз и дать мне знать, как это происходит?

4. все еще 404 с последним изменением, если я использую RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ /$1.php [ Л] server.com/api/checkAvailability выполняется, но когда я пишу RewriteRule ^(.*?)/?$ api/$1.php [L] и использоватьserver.com/checkAvailability та же ошибка 404

5. @ryanramsumair, хорошо, не могли бы вы сообщить мне, где находится ваш файл htaccess (образцы / примеры) и где путь к вашим документам? Правила выглядят нормально для меня, единственное, что нам нужно, чтобы настроить пути здесь.