У меня есть сайт, на котором я пытаюсь реализовать оптимизированную для SEO переписывание с помощью файла .htaccess
Мой сайт имеет следующую структуру папок:
- root/ - corporativo/ - [more stuff...] - social/ - [more stuff...] - index.php - corporativo.php - social.php
index.php обрабатывает все функциональные возможности моих сайтов и маршрутизацию. Я использую переменную GET 'cuerpo', чтобы определить раздел, например, для социальной секции. Я использую index.php? Cuerpo = social.
Одна из проблем, которые я обнаружил, заключается в том, что наличие социальных dir и social.php противоречит именам и условиям перезаписи.
Пожалуйста, предложите правильный способ справиться с этой ситуацией.
Большое спасибо! С наилучшими пожеланиями!
В файле .htaccess
, прежде чем переписывать правила, можно использовать эти два условия –
RewriteCond %{REQUEST_FILENAME} !-f # Not an actual file RewriteCond %{REQUEST_FILENAME} !-d # Not an actual directory
Они диктуют, что следующее правило будет применяться только в том случае, если запрошенное имя файла или папка действительно не существует. Он используется так, что браузер все равно сможет получать доступ к ресурсам без необходимости их маршрутизации.
Я не уверен на 100%, что это ваша проблема. Скорее всего, это проблема с вашей маршрутизацией в index.php
.
Убедитесь, что вы используете правильные флаги в файле .htaccess:
RewriteCond %{REQUEST_FILENAME} !-f [NC] #Not a file RewriteCond %{REQUEST_FILENAME} !-d [NC] #Not a dir
EDIT: Ликс делает хороший момент – если вы работаете в Unix, Linux и т. Д., Вы можете не захотеть использовать [NC], однако, если вы находитесь в Windows, например, вы хотели бы использовать [NC]